目录
信号和事件的关系
(leaveEvent和enterEvent)
实现通过事件获取鼠标进入和鼠标离开
(mousePressEvent)
实现通过事件获得鼠标点击的位置
(mouseReleaseEvent)
前一个的基础上添加鼠标释放事件
(mouseDoubleClickEvent)
鼠标双击事件
鼠标移动事件
鼠标滚轮事件
Qt中很多的能力是操作系统提供的,只不过是Qt封装了系统的API。
说到Qt系统相关呢~,主要分为下面几个部分:
1. 事件
2. 文件操作
3. 多线程编程
4. 网络编程
5. 多媒体(视频、音频)
这篇文章主要介绍“事件”。
信号和事件的关系
(leaveEvent和enterEvent)
实现通过事件获取鼠标进入和鼠标离开
创建一个子类,继承自Qlabel ,重写leaveEvent和enterEvent。
拖入一个Label控件,修改frameShape为box
下一步 -> 完成。
添加头文件,添加父对象
添加要重写的函数,注意拼写正确。
将QLabel提升为我们自己的Label
一定要确定这里的提升的类名称和头文件跟之前我们创建的是一致的。
点击 添加 -> 提升(右上角的对象树就发生了变化)
(mousePressEvent)
实现通过事件获得鼠标点击的位置
拖入一个Label控件,修改frameShape为box
新建一个Lable,继承自QLabel,修改接口希望能够指定父窗口,提升原来拖入的Lable控件,重写方法
这里的形参ev中就包含了鼠标指针的坐标。
我们可以看作左边远点是Label控件的左上角
我们点击可以发现,无论是鼠标左键、鼠标右键、鼠标中键(滚轮),前进后退侧键(标准的鼠标按键)点击都是可以获得坐标的。
我们可以判定是哪个案件触发了事件
可以转过去看看,依旧位图~~
(mouseReleaseEvent)
前一个的基础上添加鼠标释放事件
(mouseDoubleClickEvent)
鼠标双击事件
继续在前一个基础上添加双击事件
我们发现:我们双击鼠标第二次就会触发鼠标双击的事件,而不是点击的事件。
鼠标移动事件
鼠标滚轮事件
不再是QMouseEvent,而是QWheelEvent