Domanda

Sono bloccato nel bel mezzo di questo problema per una settimana o giù di lì ora, ho trovato una domanda simile postato su Qt per forum di Symbian, ma nessun corpo rispose.

Il problema è semplicemente che quando faccio funzionare l'applicazione, beh, non è ancora un'applicazione solo un prototipo :), sia sul emulatore o su un dispositivo reale, e utilizzare la tastiera fisica QWERTY per digitare caratteri normali, in questo caso il dispositivo è in orientamento orizzontale, la funzione keyPressEvent non viene chiamata, ma viene chiamato se ho premuto chiavi come inserire, backspace, diverse frecce e il tasto azione. Anche questo accade se si esegue l'applicazione sul emulatore e usato la tastiera macchina di sviluppo di tipo.

D'altra parte, se ho usato la mini tastiera QWERTY sullo schermo nell'emulatore, o usato la tastiera macchina di sviluppo di digitare e l'emulatore è in orientamento verticale, la funzione keyPressEvent ottenere chiamata.

Ora per essere più precisi, ho una classe che eredita da QTextEdit, mi sostituiscono le funzioni keyPressEvent e focusInEvent al suo interno, anche io chiamo la funzione setFocusPolicy all'interno del costruttore della classe, ma niente sembra risolvere il problema.

Inoltre devo dire che il codice che sto cercando su è una versione modificata dell'esempio customcompleter, e ho trovato che questo problema si verifica anche con il codice originale.

Quindi ragazzi, qualcuno ha qualche idea su come risolvere questo problema?

Saluti.

È stato utile?

Soluzione

Si potrebbe verificare keyReleaseEvent e / o monitorare tutti gli eventi sovrascrivendo event(QEvent*) e verificando esattamente quali eventi sono infatti generati. Un evento adatto diverso potrebbe essere generato.

Tuttavia, il comportamento che hai descritto suona davvero come un insetto per me. Si potrebbe verificare il Qt Bug Tracker e / o una segnalazione di bug.

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