9

当鼠标光标位于某个小部件上时,我会显示一个弹出窗口,并且我想在鼠标离开小部件时隐藏此弹出窗口。

为此,我重新实现了leaveEvent(). 这似乎在所有情况下都有效,除非通过Alt+Tab. 我发现我可能需要捕捉另一个事件,但不知何故我找不到合适的。你能推荐一个吗?

4

1 回答 1

12

您要查找的事件是QEvent::ApplicationDeactivate:“应用程序已暂停,用户无法使用”。

您可以在您的实例上安装事件过滤器QApplication来捕获此事件。QObject::installEventFilter(QObject*)有关其工作原理的更多详细信息,请参阅文档。

自 Qt 5.2 起,该QEvent::ApplicationDeactivate事件已被弃用。在 Qt 5.2(或更高版本)中识别应用程序何时停用的正确方法是使用QGuiApplication::applicationStateChanged(Qt::ApplicationState state)信号。

于 2013-01-03T21:15:51.460 回答