
QT
食梦少年
仰望大牛,脚踏实地
展开
-
Qt原理分析(一):Qt中的消息处理
1.Qt中的消息处理Qt的消息模型Qt封装了具体操作系统的消息机制Qt遵循经典的GUI消息驱动事件模型问题:1.Qt中如何表示用于消息2.Qt中如何映射用户消息到消息处理函数3.Qt中消息映射需要遵循什么规则?信号与槽Qt中定义了与系统消息相关的概念信号(Signal)由操作系统产生的消息槽(Slot)程序中的消息处理函数连接(connect)...原创 2019-07-16 09:57:59 · 631 阅读 · 0 评论 -
Qt原理分析(三):Qt中自定义信号
QT中自定义信号在实际的项目开发中,大多数时候是直接将组建中预定义的信号连接到槽函数;信号发射时槽函数被调用。问题:信号是怎么来的?又是如何发射的?Qt中信号(SIGNAL)的本质信号指示一个特殊的成员函数声明函数的返回值是void类型函数只能声明不能定义信号必须使用signals关键字进行声明函数的访问属性自动被设置为protected只能通过emit关键字调用函数(发射信号...原创 2019-07-16 10:05:00 · 16884 阅读 · 3 评论 -
Qt原理分析(四):信号与槽的连接方式
信号与槽的连接方式我们查看文档时,发现connect函数还有第五个参数。那么这个参数的作用是什么呢?我们之前使用的是默认值,具体的功能是什么呢?知识回顾每一个线程都有自己的事件队列线程通过事件队列接收信号信号在事件循环中被处理示例代码:信号与槽的连接方式//MyObject.hclass MyObject : public QObject{ Q_OBJE...原创 2019-07-16 10:09:30 · 968 阅读 · 0 评论 -
Qt原理分析(五):Qt中信号与槽的对应关系
Qt中信号与槽的对应关系到目前为止,我们已经可以吧信号与槽连接在一起了。但我们还需要考虑一些其他的可能性。例如下图所示:一个信号连接多个槽(一对多)如signal5连接了slot2和slot3。void one_to_multi(){ qDebug() << "one_to_multi()" << endl; TestSignal t; ...原创 2019-07-16 10:11:11 · 1242 阅读 · 0 评论 -
Qt原理分析(六):Qt中的事件处理
Qt中的事件处理图形界面应用程序的消息处理模型问题:操作系统发送的消息如何转变为Qt信号的?Qt事件Qt平台将系统产生的消息转换为Qt事件Qt事件是一个QEvent的对象Qt事件用于描述程序内部或外部发生的动作任意的QObject对象都具备事件处理的能力GUI应用程序的事件处理方式Qt事件产生后立即被分发到QWidget对象QWidget中的event(Q...原创 2019-07-16 10:14:13 · 368 阅读 · 0 评论 -
Qt原理分析(七):Qt中的事件过滤器
Qt中的事件过滤器问题:有时候我们在自定义事件时,并不是需要所有的事件类型都可以触发的,例如在数字键盘中,我们就不希望按下字母可以触发事件并输入到编辑框中。那么Qt有什么机制可以过滤掉一部分事件呢?Qt中的事件过滤器事件过滤器可以对其他组件接收到的事件进行监控任意的QObject对象都可以作为事件过滤器使用事件过滤器对象需要重启eventFilter() 函数组件通过installE...原创 2019-07-16 10:16:17 · 4844 阅读 · 0 评论 -
Qt原理分析(二):Qt中自定义槽函数
Qt中自定义槽函数一般在工程项目开发中,我们都需要自定义槽函数实现具体功能。那么系统槽函数和自定义槽函数在定义上有什么区别呢?自定义槽函数的规则只有QObject的子类才能自定义槽定义槽的类必须在声明的最开始处使用Q_OBJECT类中声明槽时需要使用slots关键字槽与所处理的信号在函数签名上必须一致SIGNAL和SLOT所指定的名称中可以包含参数类型不能包含具体的参数名示...原创 2019-07-16 10:03:58 · 18069 阅读 · 0 评论