QOpenGLWindow:如何防止它通过单击获得(键盘)焦点

问题描述 投票:0回答:1

我正在为一个 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 中究竟发生了什么变化导致了这种行为吗? 或者,更好的是,我如何才能实现“集中注意力”?

c++ qt click focusin
1个回答
0
投票

感谢@musicamente,同时我发现了 Qt::WindowFlag

Qt::WindowDoesNotAcceptFocus
,它似乎可以在所有平台上实现这一点。 只需在构造函数中设置该标志即可。

https://doc.qt.io/qt-6/qt.html#WindowType-enum

© www.soinside.com 2019 - 2024. All rights reserved.