前言
- 这篇文章主要汇总一下Qt信号和槽实现方式,其他进阶内容可参考
- 《C++ QT进阶》
- 《ubuntu安装QT5.14.2:编译项目报错、不能输入中文解决》
QT:常见信号和槽的实现方式
第1种 UI方式
- 只需要关注槽函数如何实现的?其他的已经帮你实现好了!
- 好处:使用非常方便
- 坏处:对于初学者,不利于学习!
第2种 Qt4方式
connect(ui->pushButton_3, SIGNAL(clicked()), this, SLOT(close()));
- 好处:信号与槽相对直观
- 坏处:
1.使用宏定义的时候,如果存在任何错误,在编辑阶段是不会报错,运行阶段会报错误。
2.宏定义里面的两数的参数,它不是不能够加参数名,只能加参数类型
第3种 Qt5方式
01 普通方式
connect(ui->pushButton_4, &QPushButton::clicked, this, &QWidget::close);
connect(ui->pushButton_4, &QPushButton::clicked, this, &SignalAndSlot::customSlot);
- 好处:能够完美解决Qt4所遗下米的问题;普通函数它可以作为槽函数去使用的;
02 Lambda
- 条件: 加入
CONFIG += c++11
到.pro文件 - 好处:使槽函数更加简洁
connect(ui->pushButton_5, &QPushButton::clicked, this, [=](){
this::close();
});
- 这里不推荐应用传递!
第4种 自定义方式
第5种 函数指针
推荐使用QT4和QT5方式
附 : 信号与槽函数原型
原型1
原型2
原型3
原型4
原型5
原型6
后记
- 希望对您有帮助!
- 点个赞吧