Domanda

Non sono sicuro di come esprimere in modo conciso la domanda, quindi se c'è una domanda simile, per favore indicami nella giusta direzione e chiudi questa.

Attualmente sto costruendo un'app CAD, l'utente interagisce all'interno dei Viewport 3D principalmente attraverso il mouse e i tre modificatori della tastiera (ALT, SHIFT, CTRL). Maiusc and Control Modifica le opzioni dello strumento attualmente selezionate e ALT opera la fotocamera, proprio come qualsiasi altra app CAD 3D.

Tuttavia, attualmente sto sviluppando con un desktop GNOME, ed è il suo gestore di finestre (AFAIK), cattura qualsiasi evento di trascinamento del mouse alt -right che trascina e li interpreta come comando di trascinamento della finestra, anche quando non si tiene la barra del titolo e indipendentemente dal widget attualmente evidenziato.

Questo è un disastro per me perché i controlli della tastiera della fotocamera sono abbastanza standardizzati nel mio settore target. Quindi qualcuno sa un modo per sovrascrivere questo comportamento, preferibilmente dall'interno di QT, e preferibilmente a concentrarlo per il mio unico scenario in una particolare classe di widget?

Grazie,
Camera

È stato utile?

Soluzione

Se si utilizza Qt :: x11BypassWindowManagerhint sulla finestra, il gestore delle finestre non può rubare i thy keypress. Tuttavia, ciò significa che perdi la cornice della finestra nativa (inclusi decorazione, muoversi e ridimensionamento), quindi è probabile Non vuoi farlo.

Un altro modo: se i tuoi utenti sono solo su 1 o 2 varietà di Linux, aggiungi qualcosa al programma di installazione che chiede all'utente se vogliono manipolare i tasti GNOME (o altro) e, in tal caso, li cambia tramite GConFtool-2 (o equivalente).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top