Qt中的消息处理

Qt消息模型

Qt封装了具体操作系统的消息机制

Qt遵循经典的GUI消息驱动事件模型

 

Qt中如何表示用户消息?

Qt中如何映射用户消息到消息处理函数?

Qt中消息映射需要遵循什么规则?

 

信号与槽

Qt中定义了与系统消息相关的概念

信号(Signal)

由操作系统产生的消息

槽(Slot)

程序中的消息处理函数

连接(Connect)

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

 

Qt的核心-QObject::connect函数

 

bool connect(

const QObject* sender, //发送对象

const char* signal, //消息名

const QObject* receiver, //接受对象

const char * method, //接收对象的成员函数

Qt::ConnectionType type = Qt::AutoConnection

);

Note:

在Qt中,消息用字符串进行描述

connect函数在消息名和处理函数之间建立映射

 

Qt中的“新"关键字

SIGNAL用于指定消息名

SLOT用于指定消息处理函数名

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

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

 

自定义槽

只有QObject的子类才自定义槽

定义槽的类必须在声明的最开始处使用Q_OBJECT

类中声明槽时需要使用slots关键字

槽与所处理的信号在函数签名上必须一致

SIGNAL和SLOT所指定的名称中:

可以包含参数类型

不能包含具体的参数名

#include "widget.h"
#include <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()));
return a.exec();
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值