Pregunta

No estoy seguro de cómo expresar la pregunta de manera concisa, por lo que si hay una pregunta similar, por favor, indíqueme en la dirección correcta y cierre esta.

Actualmente estoy construyendo una aplicación CAD, el usuario interactúa dentro de las vistas 3D principalmente a través del mouse y los tres modificadores de teclado (Alt, Shift, CTRL). Shift and Control Modifique las opciones de herramienta seleccionadas actualmente, y ALT opera la cámara, muy parecido a cualquier otra aplicación CAD 3D.

Sin embargo, actualmente estoy desarrollando con un escritorio GNOME, y su administrador de ventanas (AFAIK) atrapa cualquier evento de arrastre de mouse de Button Alt -Rightton y los interpreta como un comando de arrastre de ventana, incluso cuando no sostiene la barra de título e independientemente del widget actualmente resaltado.

Este es un desastre para mí porque los controles de teclado de la cámara están bastante estandarizados en mi industria objetivo. Entonces, ¿alguien sabe de una manera de anular este comportamiento, preferiblemente desde el QT, y preferiblemente enfocarlo para mi único escenario en una clase de widgets en particular?

Gracias,
Leva

¿Fue útil?

Solución

Si usa el QT :: x11bypasswindowmanagerhint en la ventana, entonces el administrador de la ventana no puede robar sus clave de teclas. Sin embargo, esto significa que pierde el marco de la ventana nativo (incluida la decoración, el movimiento y el cambio de tamaño), por lo que es probable que sea No quieres hacer esto.

Otra forma: si sus usuarios solo están en 1 o 2 variedades de Linux, agregue algo al instalador que le pregunta al usuario si desea manipular las teclas GNOME (o lo que sea), y de ser así, los cambia a través de GConftool-2 (o equivalente).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top