Qt: Comment puis-je obtenir la fenêtre en cours d'exécution?
-
26-09-2019 - |
Question
J'écris une application de test qui simule touches et je voudrais obtenir ce que la fenêtre est affiché après chaque touches. Voici le bloc de code.
std::auto_ptr<MyForm> pForm(new MyForm(3,3));
QTest::keyPress(pForm.get(), Qt::Key_0);
Après avoir appuyé sur 0 ici, une fenêtre va montrer et je voudrais vérifier ce que la fenêtre est que je puisse QCompare / évaluer ultérieurement.
Des idées?
Mise à jour:
Je reçois une erreur de segmentation lors de l'utilisation
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"));
La solution
Si toutes les fenêtres ont été créés grâce à votre application, vous pouvez utiliser le QApplication
classe.
Par exemple, la fonction activeWindow()
renvoie le widget ayant le focus d'entrée . Mais il y a beaucoup d'autres fonctions qui peuvent vous aider.
L'espoir qui aide
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow