哪个事件属于qt c ++中的窗口焦点变化?

时间:2017-10-24 21:16:26

标签: c++ qt window qevent

我想保存焦点窗口的标题,我做了这部分,但我不知道是否有任何QEvent捕获所有(非应用程序)focusChanged事件?就像从Chrome切换到Qt Creator一样。我做了一个替代解决方案,如果最顶层的窗口标题已经改变,那么每秒检查一次,但这是非常粗鲁的。如果可能,我需要跨平台解决方案。

修改

我正在使用QT 5.9.0

1 个答案:

答案 0 :(得分:0)

快速回答: Qt只有自己的窗口和小部件的焦点事件。有关起点,请参阅http://doc.qt.io/qt-5/qfocusevent.html#details。 没有关注其他应用程序的事件。

详细说明: 对于多平台解决方案,需要有更一般的观点。在某些(X窗口)系统上,键盘焦点在鼠标下的窗口中。但只有点击后该窗口才会成为最顶层的窗口。在移动平台上,只有一个活动应用程序。并且不允许应用程序查看其他应用程序何时被激活。因此,根据我的理解,没有完整的多平台解决方案。

仅限Windows的扩展程序位于Qt Windows Extras中。 http://doc.qt.io/qt-5/qtwinextras-overview.html。但不幸的是,焦点变化没有任何关联。