【已解决】Qt无法追踪到mouse移动事件

本博文源于笔者正在亲身经历的Qt无法追踪到鼠标移动事件。事情是这样的,笔者有一个应用程序,当应用程序移动进窗口里的时候,每移动一下,检测鼠标位置,进而调整鼠标的形状,结果发现它这死活不听话。后来解决了这个问题,写下这篇博文

1、问题起源

想要监视窗体内鼠标移动

2、原始解决方案

在构造函数里写下这些。

this->setMouseTracking(true);
this->installEventFilter(this);

然后在监听事件里,写下这些

if (event->type() == QEvent::MouseMove) {
		//...一些操作
	}

结果发现没有任何一点作用,根本不响应MouseMove,只有在鼠标左键按下,不断滑动窗体菜响应事件。

3、问题解决方案

将监听事件里的

if (event->type() == QEvent::MouseMove) {
		//...一些操作
	}

删去,变成这种

if (event->type() == QEvent::HoverEnter || event->type() == QEvent::HoverLeave || event->type() == QEvent::HoverMove) {
		//....一些操作
	}

然后在构造函数里写下这些。

this->setAttribute(Qt::WA_Hover, true);

这段代码

4、测试效果

效果是只要窗体内鼠标移动,便可触发你的一些操作事件。

你可能感兴趣的:(QT,qt,开发语言)