网站建设软件长沙企业网站建设

丹东交通物流有限公司-官网 2026/09/09 20:08:40

目录

  • 1,事件的概念
  • 2,事件循环
  • 3,父子控件之间事件的传递处理
  • 4,事件过滤器

1,事件的概念

定义:事件是应用程序内部发生的事情或应用程序需要知道的外部事件的结果。

事件和信号的区别:
事件是由外部向内部,信号是由内部向外部。事件先发生,信号后发生。

2,事件循环

intmain(){do_step1();do_step2();}

等待事件发生之后再退出。

intmain(){while(!is_quit()){do_step1();do_step2();}}


当我们运行程序时,会向操作系统注册回调函数,当有事件发生时,操作系统会调用回调函数,此时会记录发生的事件是那种类型的事件,然后将事件加入到一个消息队列当中,此时一个循环就会处理消息队列中存储的事件,然后根据对应事件去进行逻辑处理。

3,父子控件之间事件的传递处理



以上两个图描述的是Qt负责处理事件处理的类关系图和Qt中常用的处理事件的几种方式。

在实际的项目中会经常处理父子窗口之间的事件传递,那么事件传递的机制是怎样的呢?
以下是两个事件处理函数。

其中Widget是父窗口,MyLineEdit是子窗口。当出现事件时,说先处理子窗口,后处理父窗口。
但是以上的编码实际上在多次出现某种事件之后父窗口的事件只执行了一次。所以需要在子窗口的事件函数中添加代码 event->ignore();
此外重写处理函数时,需要调用基类的处理函数。


有的时候根据需要我们需要事件进行子窗口到父窗口的传递,有时候不需要,那么怎么控制传递呢?
event->ignore(); 允许事件进行子窗口到父窗口的传递。
event->accept(); 阻止事件进行子窗口到父窗口的传递。

4,事件过滤器

通常情况下,一个父窗口中往往会有很多子窗口,而此时发生在这个窗口中的事件需要我们去一 一 处理,很多时候我们需要分清楚这个事件是发生在哪个子窗口中的,这个时候我们就需要事件过滤器去帮助我们判断。

假设我们的父窗口类为 Widget 子窗口类为 MyLineEdit 。

应用事件过滤器,首先要重写
bool QObject::eventFilter(QObject *watched, QEvent *event);函数
其次还要给主窗口安装事件过滤器,
ui->lineEdit->installEventFilter(this);在这个示例里面表示是一个名为lineEdit控件安装事件过滤器。

示例:

bool Widget::eventFilter(QObject*watched,QEvent*event){if(watched==ui->lineEdit){if(event->type()==QEvent::KeyPress){//进行相应逻辑处理}}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

南京网站建设绵阳网站建设

一、前情提要——知识库评估框架搭建1.之前的评估指标我们提到了用retrieved_context、answer、ground_truth三个值,分别两两做余弦相似度,来衡

2026/06/30 11:14:54

中国建设银行官方网站龙岗网站建设

你是否曾经在深夜工作时被风扇的轰鸣声打扰?是否在游戏中因为帧率波动而错失关键操作?华硕笔记本的强大性能潜力,往往被复杂的原厂软件所束缚。现在,让

2026/06/30 11:36:56

招商网站建设莆田网站建设

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等

2026/06/30 13:09:04

机票网站建设大庆网站建设

Degrees of Lewdity 中文汉化终极指南:从零到精通【免费下载链接】Degrees-of-Lewdity-Chinese-LocalizationDegrees of Le

2026/06/30 14:17:39

义乌网站建设鄂州网站建设

在数字化转型浪潮席卷各行各业的今天,数据已成为企业最核心的战略资产。作为承载这一资产的关键基础设施,数据库如同企业信息系统的“心脏”,其稳定性、安全性与经济性

2026/06/30 13:19:35

医院网站建设网站建设公司哪个好

提示工程架构师的技术路线图:最新工具与技术的整合一、引入与连接:从“调Prompt的咒语”到“LLM交互系统设计师”1. 一个真实的痛点场景小张是某电商公司的产品经理&#x

2026/06/30 10:14:49

庆网站建设网站建设便宜

从零开始搭建FPGA开发环境:vivado2021.1安装实战全记录你是不是也曾在搜索引擎里反复输入“vivado2021.1安装教程”,只为让那个进度条顺利走完ÿ

2026/06/30 13:42:07

律师网站建设承德网站建设

如何快速掌握gtsummary:面向新手的完整表格生成指南【免费下载链接】gtsummaryPresentation-Ready Data Summary and Analytic Re

2026/06/30 14:04:08

福州网站建设南充网站建设

在当今企业级服务器管理场景中,网络隔离环境已成为常态。无论是金融行业的合规要求,还是制造企业的生产网络隔离,传统依赖在线安装的宝塔面板部署方式往往面临严峻挑战

2026/06/30 13:08:04