gpt4 book ai didi

c++ - Qt - 捕获通常由窗口管理器处理的事件

转载 作者:太空宇宙 更新时间:2023-11-04 12:18:37 24 4
gpt4 key购买 nike

我不太确定如何简洁地表达这个问题,所以如果有类似的问题,请指出正确的方向并关闭这个问题。

我目前正在构建一个 CAD 应用程序,用户主要通过鼠标和三个键盘修饰符(alt、shift、ctrl)在 3D 视口(viewport)内进行交互。 Shift 和 Control 修改当前选定的工具选项,Alt 操作相机 - 与任何其他 3D CAD 应用程序非常相似。

但是我目前正在使用 Gnome 桌面进行开发,它的窗口管理器 (AFAIK) 捕获任何 Alt-RightButton 鼠标拖动事件并将它们解释为窗口拖动命令 - 即使没有按住标题栏并且无论当前突出显示的小部件。

这对我来说是一场灾难,因为相机键盘控制在我的目标行业中非常标准化。那么有没有人知道一种方法来覆盖这种行为,最好是从 Qt 内部,并且最好将它集中在我的一个场景中的一个特定的小部件类中?

谢谢你,
凸轮

最佳答案

如果您在窗口上使用 Qt::X11BypassWindowManagerHint,则窗口管理器无法窃取您的按键操作。但是,这意味着您将丢失 native 窗口框架(包括装饰、移动和调整大小),因此您可能不想这样做

另一种方法:如果您的用户只使用 1 种或 2 种 Linux,请向安装程序添加一些内容,询问用户是否要操作 gnome(或其他)键设置,如果是,请通过 gconftool- 更改它们2(或等效的)。

关于c++ - Qt - 捕获通常由窗口管理器处理的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6336730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com