哪个事件属于 window qt c++ 中的焦点更改?
Which event belongs to window focus changing in qt c++?
我想保存焦点 window 的标题,我做了这部分,但我不知道是否有任何 QEvent 可以捕获所有 (non-application) focusChanged 事件?就像从 Chrome 切换到 Qt Creator。我做了一个替代解决方案,如果最上面的 window 标题已更改,则每秒检查一次,但这太粗鲁了。如果可能,我需要 cross-platform 个解决方案。
编辑
我正在使用 QT 5.9.0
快速回答:
Qt 只有它自己的 windows 和小部件的焦点事件。请参阅 http://doc.qt.io/qt-5/qfocusevent.html#details 了解起点。
其他应用中没有焦点事件。
详情:
对于多平台解决方案需要有更通用的观点。在某些 (X window) 系统上,键盘焦点位于 window 鼠标下方。但是 window 只有在点击后才会成为最顶层。在移动平台上只有一个活动的应用程序。并且不允许应用程序看到其他应用程序何时被激活。所以据我所知,没有完整的多平台解决方案。
Windows 只有扩展在 Qt Windows Extras 中。 http://doc.qt.io/qt-5/qtwinextras-overview.html。但不幸的是,没有任何焦点变化相关。
我想保存焦点 window 的标题,我做了这部分,但我不知道是否有任何 QEvent 可以捕获所有 (non-application) focusChanged 事件?就像从 Chrome 切换到 Qt Creator。我做了一个替代解决方案,如果最上面的 window 标题已更改,则每秒检查一次,但这太粗鲁了。如果可能,我需要 cross-platform 个解决方案。
编辑
我正在使用 QT 5.9.0
快速回答: Qt 只有它自己的 windows 和小部件的焦点事件。请参阅 http://doc.qt.io/qt-5/qfocusevent.html#details 了解起点。 其他应用中没有焦点事件。
详情: 对于多平台解决方案需要有更通用的观点。在某些 (X window) 系统上,键盘焦点位于 window 鼠标下方。但是 window 只有在点击后才会成为最顶层。在移动平台上只有一个活动的应用程序。并且不允许应用程序看到其他应用程序何时被激活。所以据我所知,没有完整的多平台解决方案。
Windows 只有扩展在 Qt Windows Extras 中。 http://doc.qt.io/qt-5/qtwinextras-overview.html。但不幸的是,没有任何焦点变化相关。