QT事件机制理解

news2025/1/12 3:47:47

事件和信号

从硬件层来看: 事件就是一种中断,
中断的产生形式:
1.用户操控硬件所产生的中断。
2.由系统自身所产生的中断,比如说定时器。

这种中断由系统内核监控,由系统内核接收到中断并向CPU发出的执行请求就叫信号。所以说事件是信号产生的基础
当Cpu接收到请求信号之后,对这个中断进行的响应叫做事件响应
在操作系统中,用户操控硬件时的中断由操作系统所监控,比如,当用户点击了一下鼠标时,此时鼠标就产生了一个中断,操作系统监控到这个中断,向CPU发出响应的请求(即一种信号),CPU按照自己的时间片对这个响应请求进行响应并进入相应的函数对这个鼠标点击事件进行处理的过程,叫做响应。当CPU进入事件处理函数后就可执行对点击事件的各种软件层的逻辑包括再发出不同的信号。

事件与信号与槽机制

事件是信号槽中信号产生的基础,而不是信号槽,信号槽解决的是两个不相关的控件中的通信问题。
事件是解决本控件对来自系统中信号的响应问题,两者不是一个概念。只能说信号槽的信号产生是由事件产生的。

QT里的事件

main.cpp

创建了一个QApplication 对象a,调用exec()后,整个程序进入事件循环,由QApplication 对象a监控应用程序中所有控件所产生的事件

#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

简要描述QT事件处理机制:由exec执行的事件循环监听整个应用程序中所有控件的事件,当某个控件产生相关事件之后,QApplication 对象
就会执行 notify 函数,向此控件发送通知,收到事件通知的控件通过 过滤 以及 分发函数,到达事件处理函数,整个过程为响应函数。

QT底层维护的 事件处理机制 路径

在这里插入图片描述
并且QT事件处理函数都是虚函数,可以重写功能。
常用事件处理函数:

  • 鼠标事件 QMouseEvent
  • 键盘事件 QKeyEvent
  • 重绘事件 QPaintEvent
  • 定时器事件 QTimeEvent
  • 拖拽事件 QDropEvent

再次区别事件机制、信号与槽机制

事件机制是针对于某一个控件,信号与槽机制针对两个不相关的控件
事件机制是CPU调度完成的,信号与槽机制是自动触发的,只要触发了信号,直接槽函数处理,不会等CPU

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2060977.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 06容器网络

本章将回答以下问题 Linux上可用的容器网络组件有哪此?各种选择的限制和性能特征是什么? 命令空间 命名空间是一个 Linux 内核虚拟化组件。该组件类似 Linux 内核提供的网络和服务器虚拟化的组件。命名空间对内核管理的特定的资源进行虚拟化&#xff0c;允许一个虚拟资源有…

Moodle与ONLYOFFICE集成如何实现智能教学管理

陈老老老板&#x1f934; &#x1f9d9;‍♂️本文专栏&#xff1a;生活&#xff08;主要讲一下自己生活相关的内容&#xff09;生活就像海洋,只有意志坚强的人,才能到达彼岸。 &#x1f9d9;‍♂️本文简述&#xff1a;ONLYOFFICE相信大家已经有所了解&#xff0c;本篇讲一下如…

2024年10月湖北省自学考试报名流程(5步)

2024年10月湖北省自学考试报名流程&#xff08;5步&#xff09; #自学考试 #自考报名 #湖北自考 #湖北自考本科 #湖北自考报名 #湖北自考专科 #湖北省自学考试

Linux信号机制探析--信号的产生

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;Linux从入门到进阶 欢迎大家点赞收藏评论&#x1f60a; 目录 &#x1f4da;信号什么是信号&#xff1f;为什么要有信号&#xff1f;查看Linux系统中信号 &#x1f388;信号产生&#x1f4d5;kill…

【分数序列相加】求出一分数序列数列的前20列之和

有一分数序列&#xff1a;1/2,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20列之和 #include<stdio.h>int main(){int t,number20;float a2,b1,s0;for(int i1;i<number;i){ssa/b;ta;aab;bt;}printf("%f\n",s);return 0; } 输出结果&#xff1a; 觉得有帮助…

主存编址例题

知识点 存储单元个数最大地址-最小地址1 存储单元个数BFFFFH-80000H13FFFFH140000H 这是个十六进制&#xff0c;转换为十进制4*16^44*2^4^44*2^164*2^6*2^10字节 1kb1024字节2^10字节 因此可以转换为4*2^6kb256kb 1byte8bit&#xff0c;1个字节8比特 16k*4bit16*1024*0.5…

2024.8.21 作业

一个服务器和两个客户端聊天 代码&#xff1a; /*******************************************/ 文件名&#xff1a;server.c /*******************************************/ #include <myhead.h> #define SER_IP "192.168.2.7" // 服务器IP #define SER…

防火墙的原因导致:Arduino2.x下载安装后卡在LOGO

台式机之前使用arduino1.8没什么问题&#xff0c;升级到2.x后不能用了。由于arduino1.8还是可以能够使用的&#xff0c;关键台式机不是主力就凑合的。主力机笔记本升级arduino2.x能够使用&#xff0c;没有折腾了&#xff0c;这两天有空准备&#xff0c;折腾了一天。终于成果&am…

涂料耐久性氙灯老化试验箱

涂料氙灯老化试验箱是现代检测手段中常用的一种设备&#xff0c;它能够模拟自然光照、光照老化等环境条件&#xff0c;对涂料、染料、塑料、橡胶、纺织品、涂层等材料进行老化试验&#xff0c;以评估其耐久性和使用寿命。本文将详细介绍涂料氙灯老化试验箱的工作原理、使用注意…

MCU扩容新选择——SD NAND(单片机上搭配的SPI NOR FLASH容量告急!)

目录 注意&#xff1a; 前言&#xff1a;  问题与需求&#xff1a; SD NAND方案&#xff1a; NOR 与 NAND的区别&#xff1a; 总结&#xff1a; 插播广告&#xff1a; 128MB 详情页&#xff1a; PS: 传送门&#xff1a; 退路&#xff1a; 传送门; 注意&#xff1a;…

案例分享—优秀国外界面设计配色舒适的原因

国外的UI设计师通常接受过系统的色彩理论学习&#xff0c;他们深刻理解色彩对人的心理和感知的影响。在实际设计中&#xff0c;他们运用这些知识&#xff0c;通过巧妙的色彩搭配来创造出和谐、舒适的视觉效果&#xff0c;从而提升用户体验。 国外的UI设计在色彩搭配上往往更加注…

python中取list前2位

实用工具 list [1,2,3] print(list[:2])结果输出

时间序列分析2|ARIMA模型|SARIMA模型

ARMA模型的定阶 自相关和偏自相关系数法 通过观察样本的自相关系数(ACF)和偏自相关系数(PACF)&#xff0c;进行大体的判断 模型定阶的经验方法 截尾&#xff1a; 最初的d阶样本(偏)自相关系数明显在2倍标准差范围外95%的(偏)自相关系数都落在2倍标准差的范围以内非零自相…

RAM(随机存取存储器)都有哪些?(超详细)

目录 RAM的特点 RAM的类型 1. SRAM&#xff08;静态随机存取存储器&#xff09; 2. DRAM&#xff08;动态随机存取存储器&#xff09; 3. SDRAM&#xff08;同步动态随机存取存储器&#xff09; 4. DDR SDRAM&#xff08;双倍数据速率同步动态随机存取存储器&#xff09;…

GTC2024 回顾 | 优阅达携手 Power BI 赋能企业数据洞察,助力 AI 驱动的商业智能革新

随着 AI 加入&#xff0c;Power BI 更像是一个智能分析伙伴&#xff0c;帮助全球企业在数据驱动的商业世界中取得成功。 GTC 2024 全球流量大会&#xff08;深圳&#xff09;已圆满落幕。作为中国跨境出海领域最大的盛会之一&#xff0c;大会聚焦了行业内最前沿的创新技术和跨境…

Win10将用户文件夹迁移到其它磁盘

Windows的用户文件夹放在系统盘C盘,系统使用过程中,该文件夹会不断地增加一些文件,导致C盘空间不断减少。可将C盘用户文件夹迁移到其它磁盘,以解决此问题。 1、创建临时账户 首先创建一个临时账户。右击开始菜单,选择”计算机管理“,打开本地用户和组中的用户,在空白处…

图片太大不能上传怎么压缩变小?图片压缩变小的8个方法

在当今这个高度数字化的时代&#xff0c;图片作为信息传递的重要载体&#xff0c;其上传与分享变得日益频繁。然而&#xff0c;面对网络平台或应用对文件大小的严格限制&#xff0c;一张未经处理的图片往往显得过于庞大&#xff0c;难以顺利上传。这时&#xff0c;掌握图片压缩…

nginx的代理服务器

简介 Nginx是一款高性能的开源Web服务器和反向代理服务器&#xff0c;它以其稳定性、低资源消耗以及高并发处理能力而闻名。Nginx作为代理服务器&#xff0c;主要提供两种模式的服务&#xff1a;正向代理和反向代理。 实验准备 四台虚拟机&#xff1a;一台nginx代理服务器、两台…

博途PLC手自动控制功能块(FB和FC完整SCL源代码)

PLC面向对象编程系列之手动自动控制功能块 PLC面向对象编程系列之手动自动功能块(SMART PLC)_smart功能块怎么做-CSDN博客文章浏览阅读2.2k次。本文探讨了西门子S7-200 SMART PLC在手动和自动模式下控制设备的标准功能块实现,包括子程序接口设计、STL代码简化及SCL语言的应用…

火山引擎AI创新巡展:豆包比友商便宜98%,行业落地探索,2000人座无虚席,PPT值得拍照收藏

火山引擎AI创新巡展上海站今天举行&#xff0c;现场熙熙攘攘&#xff0c;初步估计&#xff0c;现场的2000个座位让参会者一座难求&#xff0c;还有很多站着的以及没能进到会场站着听的小伙伴。 外面展区也就那样&#xff0c;虽然有很多不错的创新&#xff0c;但整个内场还是挺…