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

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()函数。这个
http://www.xdnf.cn/news/1111.html

相关文章:

  • ​CTGCache ​CTG-Cache TeleDB
  • 前端开发核心知识详解:Vue2、JavaScript 与 CSS
  • Anaconda3使用conda进行包管理
  • 微信小程序 van-dropdown-menu
  • 基于OpenCV的骨骼手势识别分析系统
  • 在任意路径下简单开启jupyter notebook
  • C++ / 引用 | 类
  • sofia-sip 向上注册不成功以及解决办法
  • 用c语言实现——一个带头节点的链队列,支持用户输入交互界面、初始化、入队、出队、查找、判空判满、显示队列、遍历计算长度等功能
  • Oracle--存储过程
  • mybatis mapper.xml中使用枚举
  • Mysql 读写分离(3)之 schema.xml基本配置
  • 简化K8S部署流程:通过Apisix实现蓝绿发布策略详解(上)
  • 物联网 (IoT) 安全简介
  • 《开源大模型选型全攻略:开启智能应用新征程》
  • Ubuntu 上安装 Conda
  • Spark-Streaming核心编程
  • 深度剖析神经网络:从基础原理到面试要点(二)
  • 游戏引擎学习第239天:通过 OpenGL 渲染游戏
  • 三餐四季、灯火阑珊
  • Oracle DBA 高效运维指南:高频实用 SQL 大全
  • 极狐GitLab 项目功能和权限解读
  • 大数据学习(112)-HIVE中的窗口函数
  • Cursor这类编程Agent软件的模型架构与工作流程
  • Flink介绍——实时计算核心论文之Dataflow论文详解
  • OpenCV物体计数示例
  • Go语言和Python 3的协程对比
  • Spark-Streaming
  • Linux kernel signal原理(下)- aarch64架构sigreturn流程
  • Spring Boot 主模块 spring-boot 核心技术解析:从启动类到内嵌容器的无缝支持