Qt信号与槽
Qt中的消息处理机制
-信号(Signal):由操作系统产生的消息
-槽(Slot) :程序中的消息处理函数
-连接(Connect) :将系统消息绑定到消息处理函数
-信号到槽的连接必须发生在两个Qt类对象之间!
QT新关键字
SIGNAL-指定消息名
SLOT-指定消息处理函数名
Q_OBJECT-信号与曹机制中必须加上
slots-用于在类中声明消息处理函数
#include <QtGui/QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication a(argc, argv); QPushButton b;//成为顶层窗口 b.setText("Click me to quit!"); b.show(); QObject::connect(&b,SIGNAL(clicked()),&a,SLOT(quit())); //将按钮对象的点击消息映射到a对象的quit函数 return a.exec(); }
解决经典问题: Object::connect: No such slot… 、
1. 检查类是否继承于QObject
2. 检查类声明的开始处是否添加Q_OB丿ECT
3. 检查是否使用slots关键字进行槽声明
4. 检查槽的名称是否拼写错误
5. 重新执行qmake