QT 消息处理-信号与槽

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

posted @ 2021-07-01 21:49  wsq1219  阅读(141)  评论(0编辑  收藏  举报