QT在Widget类下的四种QPushbutton的信号与槽的连接方式
一、四种连接方式概述
二、四种方式实现
1、自动连接(最简单)
右键按键选择“跳转到槽”,并选择你需要的信号,在对应的槽函数实现相应的操作即可。
2、使用QObject::connect
剩下的三种其实都是使用QObject::connect方法来连接只不过形参有所不同罢了,这里就合在一起说。
第一个的使用的是:
QObject::connect(sender, &sender::signa1,receiver, &Receiver::slot);
带入具体参数:
QObject::connect(ui->btnCon, &QPushButton::clicked, this, &Widget::btnCon_clicked);
sender是按信号的发送方ui->btnCon,btnCon是按键的名字
&sender::signa1是发送的信号&QPushButton::clicked是点击信号
receiver是处理信号的类即槽函数声明所在的类
&Receiver::slot是具体槽函数的名字
第二种用的是:
QObject::connect(sender,SIGNAL(signa1())receiver,sLoT(s1ot()));
QObject::connect(ui->btnForth,SIGNAL(clicked()),this, SLOT(btnForth_clicked()));
第三种是:
Qobject::connect(sender, &sender::signa1,[](){/* 1ambda body*/});
QObject::connect(ui->btnLambda,&QPushButton::clicked,[](){
cout << "btnLambda is clicked" << endl;
});