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

时间:2011-06-13 21:40:30

标签: c++ qt keyboard-shortcuts window-management

我不确定如何简明扼要地说出这个问题,所以如果有类似的问题,请指出正确的方向并关闭这个问题。

我目前正在构建一个CAD应用程序,用户主要通过鼠标和三个键盘修改器(alt,shift,ctrl)在3D视口中进行交互。 Shift和control修改当前选定的工具选项,alt操作相机 - 就像任何其他3D CAD应用程序一样。

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

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

谢谢你,
凸轮

1 个答案:

答案 0 :(得分:1)

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

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

相关问题