事件,在 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 美化实战课程》 包括的干货非常多,同样的讲课风格、详尽的课程笔记、规范的代码风格
近期推出,敬请期待!