QT学习笔记(五)——Qt中的消息处理

  • 一、GUI消息驱动事件模型:

  • 二、信号与槽:

——信号(signal)

        由操作系统产生的消息

——槽(slot)

        程序中的消息处理函数

——连接(connect)

        将系统消息绑定到消息处理函数

  • 三、Qt中的消息处理机制:

信号的连接必须发生在两个Qt类对象之间!

  • 四、Qt的核心——QObject::connect函数

bool connect(const QObject* sender,  //发送对象
             const char* signal,     //消息名
             const QObject* receiver, //接收对象
             const char* method,     //接受对象的成员函数
             Qt::ConectionType type = Qt::AutoConnection);

注:1、在Qt中,消息用字符串进行描述;2、connect函数在消息名和处理函数之间建立映射

  • 五、Qt中关于信号与槽的关键字

        ——Q_QBJECT

                所有自定义槽的类必须在类声明的开始处加上Q_QBJECT

        ——slots

                用于在类中声明消息处理函数

        ——SIGNAL

                用于指定消息名

        ——SLOT

                用于指定消息处理函数名

    QObject::connect(&b, SIGNAL(clicked()), &a, SLOT(quit()));//&b:发送者,这里是按钮对象;&a:应用程序的对象接收信号

注,关于自定义槽的要求:

  • 只有QObject的子类才能自定义槽
  • 定义槽的类必须在声明的最开始处使用Q_QBJECT
  • 类中声明槽时需要使用slots关键字
  • 与所处理的信号函数签名上必须一致,例如上面的clicked()和quit()
  • SIGNALSLOT所指定的名称中:

——可以包含参数类型

——不能包含具体的参数名

猜你喜欢

转载自blog.csdn.net/qq_37764129/article/details/81479772
今日推荐