我有一个 Qt (4.7) Windows 7 应用程序,其中某些组件对QEvent::HoverEnter
, QEvent::HoverLeave
, QEvent::HoverMove
,QEvent::MouseMove
事件作出反应。当显示主应用程序窗口但没有焦点时,我想忽略这些事件。
例如,假设我有两个并排的窗口:我的主应用程序窗口和一个 Web 浏览器窗口。如果我在浏览器窗口上单击鼠标左键,则浏览器具有焦点。如果我现在将鼠标指针移到我的主应用程序窗口上而不单击它,我不希望应用程序做出反应。当前行为是我的应用程序接收鼠标事件并对它们做出反应(打开菜单等)。
由于我的主类MyApplication
是从 派生的QtSingleApplication
,我想重写该方法
virtual bool MyApplication::notify(QObject* receiver, QEvent* event)
并添加一个测试,这样如果我的应用程序没有任何焦点窗口,我就可以忽略特定事件。有没有办法在 Qt 中验证这种情况?