Qt:Come posso ottenere attualmente in esecuzione la finestra?
-
26-09-2019 - |
Domanda
Sto scrivendo una applicazione di test che simula i tasti premuti e vorrei ottenere quello che viene visualizzata la finestra dopo ogni tasto.Ecco il codice di blocco.
std::auto_ptr<MyForm> pForm(new MyForm(3,3));
QTest::keyPress(pForm.get(), Qt::Key_0);
Dopo aver premuto 0 qui, Una finestra è intenzione di mostrare e vorrei controllare che la finestra è così ho potuto QCompare/valutare successivamente.
Tutte Le Idee?
Aggiornamento:
Sto diventando un segmentation fault quando uso
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"));
Soluzione
Se tutte le finestre sono state create per mezzo di la vostra applicazione, è possibile utilizzare il QApplication
classe.Per esempio, la activeWindow()
la funzione restituisce il widget che ha lo stato attivo.Ma c'è un sacco di altre funzioni che possono aiutarti.
Speranza che aiuta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow