一、Qt4写法(不推荐)
connect(ui.btnOpen,SIGNAL(clicked),this,SLOT( open() ) );
因为是以宏定义的方式展开,所以如果SIGNAL写错,或者信号名字、槽函数写错、编译器是无法检验出来的,导致出现隐性BUG,不容易发觉修改错误。
二、Qt5写法(推荐)
connect(ui.btnOpen,&QPushButton::clicked,this,&Widget::open);
推荐这种方法 ,写错后,编译器会检测出来。
三、on_控件名_信号名(推荐)
在.h文件槽中定义,在.cpp中实现
void Widget::on_btnOpen_clicked()
{//CODE
}
四、lambda表达式写法(适用于槽函数代码少量)
connect(ui.btnOpen,&QPushButton::clicked,[=]()
{//具体代码;
});
五、牵线法(不推荐)
如果跨线程、跨界面、控件过多,这种基本解决不了问题。