Qt:槽函数的五种写法

一、Qt4写法(不推荐)

connect(ui.btnOpen,SIGNAL(clicked),this,SLOT( open() ) );

因为是以宏定义的方式展开,所以如果SIGNAL写错,或者信号名字、槽函数写错、编译器是无法检验出来的,导致出现隐性BUG,不容易发觉修改错误。

二、Qt5写法(推荐)

connect(ui.btnOpen,&QPushButton::clicked,this,&Widget::open);

推荐这种方法 ,写错后,编译器会检测出来。

三、on_控件名_信号名(推荐)

Qt:槽函数的五种写法_第1张图片
在.h文件槽中定义,在.cpp中实现

void Widget::on_btnOpen_clicked()
{
	//CODE
}

四、lambda表达式写法(适用于槽函数代码少量)

connect(ui.btnOpen,&QPushButton::clicked,[=]()
{
	//具体代码;	
});

五、牵线法(不推荐)

Qt:槽函数的五种写法_第2张图片
如果跨线程、跨界面、控件过多,这种基本解决不了问题。

你可能感兴趣的:(QT,qt,开发语言)