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);