1 QT5之后的connect语法
connect( 实例指针 , &类::信号函数不带括号 , 实例指针 , &类::槽函数不带括号 )
connect(ui->startTaskButton,&QPushButton::clicked,this,&MainWindow::testSlot);
注意: &类::槽函数不带括号,表示函数指针。加括号,则表示函数的返回值。
加括号的表现:编译错误。
当采用 ui设计师制作界面时,其信号与槽是自动生成的,源代码在 #include ui_xxx.h 文件中。
2 带SIGNAL和SLOT标识的(qt5之前的方法)
connect(实例指针,SIGNAL(实例信号函数带括号),this,SLOT(实例槽函数带括号));
connect(this,SIGNAL(testSignal()),this,SLOT(testSlot()));
3 使用lambda表达式
connect(ui->CreateManuelTaskButton,&QPushButton::clicked,[=](){
//一系列操作
});
lambda的完整形式为
[ capture ] ( params ) opt -> ret { body; };
[] 不捕获任何变量。
[&] 捕获外部作用域中所有变量,并作为引用在函数体中使用(按引用捕获)。
[=] 捕获外部作用域中所有变量,并作为副本在函数体中使用(按值捕获)。
原文链接:https://blog.csdn.net/gongfpp/article/details/119999108