Ich erstellte ein Formular in Qt Creator und fügte drei benutzerdefinierte QWidgets (alle sind die gleiche Klasse namens Renderer) in das Formular ein. Ich möchte, dass alle drei Widgets neben dem Formular benachrichtigt werden, wenn ein Benutzer die Alt-Taste drückt, aber ich kann im Moment noch nicht einmal zur Arbeit kommen.Qt 4.6 und OpenGL: wie man Tastaturdrücken mit drei verschiedenen Widgets gleichzeitig erfasst?
Ich habe die void keyPressEvent (QKeyEvent *) und void keyReleaseEvent (QKeyEvent *) in die Renderer-Klasse hinzugefügt, aber die Funktionen werden überhaupt nicht aufgerufen ... (Haltepunkte wurden nicht ausgelöst) Die Tasten drücken Funktionen sind geschützt.
void Renderer::keyPressEvent(QKeyEvent *event) {
switch(event->key()) {
case Qt::Key_Alt: {
isAltPressed = true;
cout << "alt got pressed" << endl;
break;
}
default:
break;
}
}
void Renderer::keyReleaseEvent(QKeyEvent *event) {
switch(event->key()) {
case Qt::Key_Alt: {
isAltPressed = false;
cout << "alt released" << endl;
break;
}
default:
break;
}
}
Fehle ich hier etwas?
Gibt es auch etwas Besonderes, um Tastatureingaben von allen drei Widgets gleichzeitig registrieren zu lassen?
Vielen Dank.
Beantwortet. Für den zweiten Teil der Frage habe ich das Problem behoben, indem ich isAltPressed eine Klassenvariable anstelle einer privaten Membervariable gemacht habe. – confusedKid