[geloest, danke!] keyPressEvent

Alles rund um die Programmierung mit Qt
Antworten
joebar
Beiträge: 177
Registriert: 3. Oktober 2006 02:04

[geloest, danke!] keyPressEvent

Beitrag von joebar »

Hallo,

ich moechte das keyPressEvent abfangen. Ich habe eine Klasse abgeleitet von QWidget die heisst RenderArea. Dort ist deklariert

Code: Alles auswählen

void keyPressEvent(QKeyEvent *event);
Implementiert ist

Code: Alles auswählen

void RenderArea::keyPressEvent(QKeyEvent *event){
qDebug() << "event gefangen";
// mach was hier
}
Das qDebug Statement wird nie ausgegeben, sprich es wird kein key event aufgezeichnet. Ich hatte versucht das ganze aus dem Qt Tetrix Beispiel zu entnehmen, irgendwie ist mir aber nicht klar was ich denn vergessen haben koennte was dort implementiert ist.

Danke!
J.
Zuletzt geändert von joebar am 30. Juni 2008 15:00, insgesamt 1-mal geändert.
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Beitrag von archer »

Hallo,
hat dein Widget den den Eingabefocus, um Key-Events empfangen zu können?

Siehe Doku:
"A widget must call setFocusPolicy() to accept focus initially and have focus in order to receive a key press event."
joebar
Beiträge: 177
Registriert: 3. Oktober 2006 02:04

Beitrag von joebar »

Danke, das hat geholfen. Eine Frage noch, ich dachte dieses setzen des Focus bedeutet welches Widget die Eingabe hat und das aktive ist. Somit habe ich in das Widget geclickt gehabt um ihm den Focus zu geben, aber das hat nicht geholfen. Wieso nicht?
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Beitrag von archer »

Per Default hat ein Widget Qt::NoFocus, es kann also den Fokus gar nicht bekommen (the widget does not accept focus).
Da hilft auch kein Klicken.
Die FocusPolicy beschreibt wie das Widget den Eingabefokus bekommen kann.
... so habe ich es verstanden...
Antworten