setMouseTracking(true)
2016-08-12 10:11
323 查看
系统:Win7 32bit
Qt版本:qt-opensource-windows-x86-android-5.5.0.exe
项目:Qt Widget
1、要想实现mouseMoveEvent,则需要在构造函数中添加setMouseTrack(true),直接得到监听事件。若是setMouseTrack(false),只有鼠标按下才会有mouseMove监听事件响应。
2、使用
setMouseTracking(true)对鼠标进行监控(
mouseMoveEvent(QMouseEvent *event)),如果
WidgetA有个子窗体
WidgetB会占据
WidgetA的绝大部分空间,那么当鼠标移动到
WidgetB上时,
WidgetA就会失去对鼠标的监控。
3、使用
setAttribute( Qt::WA_Hover,true)也可以实现对鼠标的监控,相对于
setMouseTracking(true)来说,它可以弥补鼠标事件被子窗体获取的问题:
bool Widget::event(QEvent *e) { if (e->type() == QEvent::HoverEnter || e->type() == QEvent::HoverLeave || e->type() == QEvent::HoverMove) { QHoverEvent* pHoverEvent = static_cast<QHoverEvent *>(e); setMouseStatus(pHoverEvent->pos()); } return QWidget::event(e); }
相关文章推荐
- QT学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- Qt 5.6更新至RC版,最终版本近在咫尺
- Qt定时器和随机数详解
- Qt实现图片移动实例(图文教程)
- Qt for Android开发实例教程
- QModelIndex/Role/Model介紹<二>
- Qt Model/View/Delegate浅谈 - QAbstractListModel
- Qt Model/View/Delegate浅谈 - roleNames()
- QT历程(一):与CryptoJs对应的AES加密
- 基于PyQt5的快速开发框架QFramer
- OSX下安装PyQt
- ok6410开发板移植DirectFB手记
- 【笔记】给Qt内嵌一个Chrome吧
- 【算法】最短路径之A*搜索
- qt入门必备
- 在 Qt4 中使用 C++11
- Hello Word ~ v0.2.2 背单词软件发布 -- By WHYPRO
- ubuntu下opencv和qt的安装配置
- linux下opengl的安装(with qt)