connect

一、

connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(pushButon1_clicked()));

二、

connect(ui->pushButton_2,&QPushButton::clicked,this,&::MainWindow::pushButon2_clicked);

三、

connect(ui->pushButton_3, QOverload<bool>::of(&QPushButton::clicked),this,&::MainWindow::pushButon3_clicked);

四、

connect(ui->pushButton_4, QOverload<bool>::of(&QPushButton::clicked),[=](bool check){
                   ui->textBrowser->setText("按钮4信号绑定成功");
});

 

 

disconnect

bool QObject::disconnect ( const QObject * sender, const char * signal, const QObject * receiver, const char *method ) 

当信号与槽没有必要继续保持关联时,可以使用disconnect函数来断开连接。

在disconnect函数中0可以用作一个通配符,分别表示任何信号、任何接收对象、接收对象中的任何槽函数。但是发射者sender不能为0,其它三个参数的值可以等于0。

以下三种情况需要使用disconnect()函数断开信号与槽的关联:
A、断开与某个对象相关联的任何对象    

disconnect(sender, 0, 0, 0);

sender->disconnect();

B、断开与某个特定信号的任何关联    

disconnect(sender, SIGNAL(mySignal()), 0, 0);

sender->disconnect(SIGNAL(mySignal()));

 C、断开两个对象之间的关联 

disconnect(sender, 0, receiver, 0);
 
sender->disconnect(receiver);