天天看点

QMainWindow中的QMouseMove事件

        今天为了实现”拖动图像边缘“修改图像大小功能,需要事先获取鼠标是否在图像边缘,然后给出拖动提示。

        测试发现,MouseMove事件只有在鼠标按键被按下时才响应,查了下帮助文档发现这是默认机制,需要setMouseTracking(true)时才会在非按下状态也响应。

        试了下this->setMouseTracking(true),发现还是没有响应到,再试了下this->centerWidget->setMouseTracking(true),也没有响应。而两者同时使用就能响应。

        现在还不太了解QT事件机制的原理,猜测是否可能是centerWidget会优先响应鼠标移动消息?因此,若centerWidget的Mousetracking为false,MainWindow也响应不到。有时间看看其机制。

继续阅读