Frage

Ich bin die Simulation von Tastenfolgen zu einer Anwendung durch KeyPress Funktion von Qt. Alle Drücken von Tasten funktionieren. Allerdings, wenn ich einen QT::Key_Enter geben, die die OK-Taste des aktuell aktiven Fensters drücken soll, oder QT::Key_Cancel für die Taste abbrechen, es tut nichts.

Ich denke, vielleicht, weil diese Tasten nicht den Fokus haben, und das übergeordnete Fenster selbst hat es. Wie beurteilen Sie die Kinder von einem Fenster bekommen? oder vielmehr die OK finden oder ihm Abbrechen-Taste, so dass Sie es als active einstellen könnten und dann Drücken von Tasten bestanden habe?

ich habe:

QWidget *pWin = QApplication::activeWindow;
QObjectList *pList = pWin->children();
//how do you iterate through the list and find the OK or Cancel button?
War es hilfreich?

Lösung

Sie können das findChild Funktion mit dem Objektnamen erhalten ein spezifischen Kinder. Sie können auch verwenden findChildren alle Kinder zu erhalten, die die gleichen Namen und die Iteration durch die Liste hat mit foreach oder

Andere Tipps

Vielleicht möchten Sie eine benutzerdefinierte setzen Ereignisfilter auf Ihrem Widget-Capture das Schlüsselereignis und sehen, was es wirklich passiert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top