Qt: Wie bekomme ich das aktuell laufende Fenster?
-
26-09-2019 - |
Frage
Ich schreibe einen Test-App, die Tastendrücke simuliert, und ich mag bekommen, was Fenster nach jedem Tastendrücke angezeigt wird. Hier ist der Code-Block.
std::auto_ptr<MyForm> pForm(new MyForm(3,3));
QTest::keyPress(pForm.get(), Qt::Key_0);
Nach dem 0 hier drücken, wird ein Fenster werde zeigen, und ich möchte überprüfen, was Fenster ist es so konnte ich QCompare / bewerten Sie es später.
Irgendwelche Ideen?
Aktualisiert:
Ich bin ein Segmentierungsfehler bekommen, wenn ich
std::auto_ptr<MyForm> pForm(new MyForm(3,3));
QTest::keyPress(pForm.get(), Qt::Key_0);
QWidget *pWin = QApplication::activeWindow();
QCOMPARE(pWin->windowTitle(), QString("My Second Menu"));
Lösung
Wenn alle Ihre Fenster sind durch Ihre Anwendung erstellt wurde, können Sie die QApplication
Klasse.
Mit dem Beispiel des activeWindow()
Funktion gibt das Widget, das den Eingabefokus hat . Aber es gibt viele andere Funktionen, die Ihnen helfen können.
Ich hoffe, das hilft
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow