QT 控制台信号与槽简例
要点:
1、要注意末尾的 #include "main.moc",否则编译报错
2、槽函数可以为实例成员函数
3、槽函数可以为静态成员函数
4、槽函数可以为lamda函数
5、一个信号可以连接多个槽函数
6、一个槽函数也可以被多个信号连接
#include <QCoreApplication>
#include <QDebug>
class F: public QObject
{
Q_OBJECT
public:
void myslot(int para)
{
qDebug()<<"my slot:"<<para<<endl;
}
static void myslot2(int para)
{
qDebug()<<"my slot2:"<<para<<endl;
}
signals:
void mysig(int);
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
F *aaa = new F();
QObject::connect(aaa, &F::mysig, aaa, &F::myslot);
QObject::connect(aaa, &F::mysig, [](int x){
qDebug()<<"my lamda:"<< x << endl;
});
QObject::connect(aaa, &F::mysig, &F::myslot2);
emit aaa->mysig(3);
return a.exec();
}
#include "main.moc"