我正在为一个 Qt 应用程序做出贡献,该应用程序最近为某些特殊图形嵌入了 QOpenGLWindows。
问题是这些窗口在被单击时接收键盘焦点,而焦点应保留在当前具有焦点的 QWidget 中。 对于 Qt 5,为所有 QOpenGLWindows 设置
Qt::Tooltip
标志就足够了。
然而,对于 Qt 6,这在 Linux 上不再起作用(使用 Qt 6.2.3)。 (Qt::Tool、Qt::SplashScreen 或 Qt::SubWindow 也没有) FocusIn 事件也不能用
event(QEvent*) override
捕获。
有人知道 Qt 6 中究竟发生了什么变化导致了这种行为吗? 或者,更好的是,我如何才能实现“集中注意力”?
感谢@musicamente,同时我发现了 Qt::WindowFlag
Qt::WindowDoesNotAcceptFocus
,它似乎可以在所有平台上实现这一点。
只需在构造函数中设置该标志即可。