我正在用Qt编写一个程序。我有一个从QWidget派生的类。在它的构造函数中我想使用Linux Socket连接方法。并且还想使用Qt连接信号和插槽方法。 我该怎么做。因为当我使用 Socket 连接方法时,编译器认为我正在使用 Signal_Slot 连接方法并给出参数不匹配的编译错误......
感谢您提供的任何信息。
这是我的代码:
Login_Page::Login_Page(QWidget *parent) :
QWidget(parent),
ui(new Ui::Login_Page){
ui->setupUi(this);
ui->error_lablel->hide();
//try connect to server
...
if(connect(client_fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr))){
ui->login_button->setDisabled(true);
ui->error_lablel->setText("cannot connect to server");
ui->error_lablel->show();
while(true){
if(!(connect(client_fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr))))
break;
}
ui->login_button->setDisabled(false);
ui->error_lablel->hide();
}
connect(ui->login_button,SIGNAL(clicked()),this,SLOT(login()));
}
调用带
::
前缀的socket的connect方法:
...
if(::connect(client_fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr))){
...