QT 的鼠标移动到控件上面鼠标事件会失效

libai 2011-07-29 10:04:40
这件鼠标移动事件,只要一移动在控件上面就失效了,
也在网上看了别人的方法说把控件和Widget都加上
PushButton2->setMouseTracking(TRUE);
setMouseTracking(TRUE);
void HelloForm::mouseMoveEvent(QMouseEvent *e)
{
int x,y;
x= e->x();
y= e->y();
QString location = QString("x: %1, y: %2").arg(x).arg(y);
qWarning(location);
}
...全文
1623 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dbzhang800 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 li880wert 的回复:]

QWidget::enterEvent 和 QWidget::leaveEvent
这两个我试了,是可以实现功能,但有个关键是,我不知道当前进入或离开的控件是哪个哪控件就是控件的对像怎么获取得到
[/Quote]
所以啊,你需要先说明你要做什么,实现什么功能。

不然别人只能猜测,你大概需要 事件过滤器。
libai 2011-07-29
  • 打赏
  • 举报
回复
QWidget::enterEvent 和 QWidget::leaveEvent
这两个我试了,是可以实现功能,但有个关键是,我不知道当前进入或离开的控件是哪个哪控件就是控件的对像怎么获取得到
dbzhang800 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 li880wert 的回复:]

那有没什么方法过虑掉呀,QT新手啊不懂,试了网上很多方法,也看到过有这样的例子,就是当鼠标移到一个控件位置上就触发信号,移出就复原。但试了他们的都不行,郁闷。我很奇怪的是,好像他们都没有那种鼠标移动到控件上失效问题
[/Quote]
先说清楚你要做什么吧。

你这儿描述的显然是 hover 。或者 QWidget::enterEvent 和 QWidget::leaveEvent
libai 2011-07-29
  • 打赏
  • 举报
回复
那有没什么方法过虑掉呀,QT新手啊不懂,试了网上很多方法,也看到过有这样的例子,就是当鼠标移到一个控件位置上就触发信号,移出就复原。但试了他们的都不行,郁闷。我很奇怪的是,好像他们都没有那种鼠标移动到控件上失效问题
xxcc309 2011-07-29
  • 打赏
  • 举报
回复
你移动到控件上就会被控件自己的鼠标消息屏蔽掉,QT只响应当前激活控件的鼠标消息。

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧