Piszę aplikację testową, która symuluje naciśnięcia klawiszy i chciałbym uzyskać to, co okno jest wyświetlane po każdym naciśnięciu klawisza. Oto blok kodu.Qt: Jak uzyskać aktualnie uruchomione okno?
std::auto_ptr<MyForm> pForm(new MyForm(3,3));
QTest::keyPress(pForm.get(), Qt::Key_0);
Po naciśnięciu 0 tutaj, Okno jest zamiar pokazać się i chciałbym sprawdzić co okno jest tak mogę QCompare/oceniają go później.
Jakieś pomysły?
Aktualizacja:
Dostaję błąd segmentacji, gdy używam
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"));
+1 To jest prawidłowe rozwiązanie. – Venemo
Mimo to otrzymuję błąd segmentacji. Być może robię coś nie tak ... Zaktualizowałem blok kodu powyżej ... :( – Owen
Jak wyjaśniono w dokumentacji, wskaźnik powrotu może być pusty, jeśli żadne okno nie ma fokusu wejściowego. Może się to zdarzyć, gdy wdowa nie ma wejścia klawiatury widget Spróbuj dodać QTextEdit w swoich oknach testowych –