当前位置: 首页 > news >正文

Qt进阶开发:鼠标及键盘事件

文章目录

    • 一、Qt中事件的概念
    • 二、Qt中事件处理方式
    • 三、重新实现部件的事件处理函数
      • 3.1 常用事件处理函数
      • 3.2 自定义控件处理鼠标和绘图事件
      • 3.3 常用事件处理函数说明
    • 四、重写notify()函数
    • 五、QApplication对象上安装事件过滤器
    • 六、重写event()事件
    • 七、在对象上安装事件过滤器
    • 八、事件的传递顺序
    • 九、鼠标及键盘事件的完整实例
      • 9.1 鼠标事件的完整实例
      • 9.2 键盘事件的完整实例

一、Qt中事件的概念

  在 Qt 中,事件(Event) 是程序和用户、系统之间交互的一种机制。它是 Qt 应用响应用户操作(如鼠标点击、键盘输入、窗口变化、定时器等)的核心组成部分。Qt 通过其 事件系统 实现了灵活、统一的事件处理模型。

事件是继承自 QEvent 的对象,用来描述“发生了什么事情”。比如:
在这里插入图片描述

二、Qt中事件处理方式

  一个事件由一个特定的QEvent子类来表示,但是有时一个事件又包含多个事件类型,比如鼠标事件文可以分为鼠标按下、双击和移动等多种操作。这些事件类型都由 QEvent类的枚举型QEvent::Type来表示,其中包含了一百多种事件类型,虽然QEvent的子类可以表示一个事件,但是却不能用来处理事件,那么应该怎样来处理一个事件呢?QCoreApplication类的notify()函数的帮助文档给出了5种处理事件的方法:

  1. 重新实现部件的paintEvent()、mousePressEvent()等事件处理函数。
  2. 重新实现notify()函数。这个

相关文章:

  • AOSP Android14 Launcher3——RectFSpringAnim窗口动画类详解
  • ComfyUI+Sonic实战,三步实现图片开口说话
  • 单个或批量实现-提取PDF文档中的合同号和姓名并按“合同号_姓名”格式重命名文件。
  • 【文献分享】Model-based evaluation提供了数据和代码
  • day48—双指针-通过删除字母匹配到字典最长单词(LeetCode-524)
  • rk3568main.cc解析
  • 多路转接select服务器
  • Node.js简介(nvm使用)
  • docker-compose搭建kafka
  • Git Flow分支模型
  • L2-2、示范教学与角色扮演:激发模型“模仿力“与“人格“
  • 从单模态到多模态:深度生成模型的演进历程
  • 【武汉理工大学第四届ACM校赛】copy
  • EAL4+与等保2.0:解读中国网络安全双标准
  • 用 Go 优雅地清理 HTML 并抵御 XSS——Bluemonday
  • 嵌入式---超声波测距模块
  • 时间模块 demo
  • 小白学习java第14天(上):数据库
  • 【目标检测】对YOLO系列发展的简单理解
  • 力扣2685(dfs)
  • 对话上海外贸企业:关税战虽起,中国供应商却难以被取代
  • 谁为金子疯狂:有人贷款十万博两千,有人不敢再贸然囤货
  • 国际货币基金组织报告:将今年全球经济增长预期由此前的3.3%下调至2.8%
  • 大家聊中国式现代化|权衡:在推进中国式现代化中当好龙头
  • 澳大利亚大选提前投票开始
  • 哈佛大学就联邦经费遭冻结起诉特朗普政府