【QT开发笔记-基础篇】| 第四章 事件QEvent | 4.1 整体效果演示、技术点

事件,在 Qt 中是很重要的一块内容,在实际工作中用到的也很多。

这里用一章的篇幅来讲解它。

本节先看下本章的一个总览,演示下所有效果,以及涉及到的一些技术点。

1.1 常用的事件讲解

整体效果如下:

详细讲解以下事件:

  • 鼠标进入/离开事件

  • 鼠标按下/移动/释放事件

  • 键盘事件

  • 定时器事件

  • 拖动事件

  • 绘图事件

  • 右键菜单

1.2 事件的处理流程

学会了常用事件处理函数,会详细讲解事件处理流程。

实际工作中,往往窗口是相互嵌套的,比如一个标签放在一个 widget 中, 一个 widget 也可能放在另一个 widget 中,这时就涉及在父子窗口之间的传递,什么时候需要传递,什么时候又要终止传递。这是需要搞清楚的。

最终给大家总结了一张图:

1.3 小案例:无边框窗口

最后,实现一个简单的小案例-无边框窗口,整体效果如下:

当然,这里仅仅是为了复习事件,做的一个特别精简的无边框窗口。

完善的无边框窗口,会在 《UI 美化实战课程》 中详细讲解,这里仅做一个演示。

它支持以下特性:

  • 支持鼠标拖拽4个边框和4个角,来缩放窗体
  • 支持鼠标拖动标题栏,来移动窗体
  • 支持双击标题栏,来实现窗口最大化和恢复
  • 最大化状态下,拖动标题栏恢复原始大小

整体效果如下:

PS:网上能查到的各种实现,各种小 BUG,包括但不限于:

  • 缩放窗口时,把窗口 "推走";
  • 最大化状态变为最小化后,再次恢复不是最大化状态
  • 点击标题栏后,右上角的按钮失去 "活性"

在我实现的无边框窗口中,这些问题都一一解决了!

无边框窗口_效果体验地址:

链接:https://pan.baidu.com/s/1_3FwQ5B4Uop-PwUXqQmFcA?pwd=qtui

提取码:qtui

也可以关注公粽号: QT课堂,回复 无边框窗口 来获取

关于无边框窗口源码的获取:

  • 会在 《UI 美化实战课程》 中详细讲解

    会从零开始、从零新建项目实现一个完善的无边框窗口,可以直接应用到商业项目中

  • 不止UI美化

    当然, 《UI 美化实战课程》 包括的干货非常多,同样的讲课风格、详尽的课程笔记、规范的代码风格

    近期推出,敬请期待!

相关推荐
汉克老师19 小时前
GESP2023年9月认证C++三级( 第一部分选择题(9-15))
c++·gesp三级·gesp3级
Wave8451 天前
C++继承详解
开发语言·c++·算法
Tairitsu_H1 天前
C++类基础概念:定义、实例化和this指针
开发语言·c++
不想写代码的星星1 天前
C++17 string_view 观察报告:好用,但有点费命
c++
努力努力再努力wz1 天前
【Linux网络系列】深入理解 I/O 多路复用:从 select 痛点到 poll 高并发服务器落地,基于 Poll、智能指针与非阻塞 I/O与线程池手写一个高性能 HTTP 服务器!(附源码)
java·linux·运维·服务器·c语言·c++·python
努力努力再努力wz1 天前
【Linux网络系列】万字硬核解析网络层核心:IP协议到IP 分片重组、NAT技术及 RIP/OSPF 动态路由全景
java·linux·运维·服务器·数据结构·c++·python
minji...1 天前
Linux 线程同步与互斥(四) POSIX信号量,基于环形队列的生产者消费者模型
linux·运维·服务器·c语言·开发语言·c++
王老师青少年编程1 天前
csp信奥赛C++高频考点专项训练之贪心算法 --【排序贪心】:拼数
c++·算法·贪心·csp·信奥赛·排序贪心·拼数
程序猿编码1 天前
给Linux程序穿“隐身衣”——ELF运行时加密器全解析(C/C++代码实现)
linux·c语言·c++·网络安全·elf·内存安全
John_ToDebug1 天前
从 Win10 到 Win11 22H2+:任务栏美化中的“蒙版”和“Hover 色块”渲染原理解析
c++·chrome·windows