QT: ¿Cómo consigo la ventana actualmente en ejecución?
-
26-09-2019 - |
Pregunta
Estoy escribiendo una aplicación de prueba que simula pulsaciones de teclas y me gustaría obtener lo que se muestra la ventana después de cada pulsaciones de teclas. Aquí está el bloque de código.
std::auto_ptr<MyForm> pForm(new MyForm(3,3));
QTest::keyPress(pForm.get(), Qt::Key_0);
Después de pulsar 0 aquí, una ventana va a aparecer y me gustaría comprobar lo que es la ventana para que pudiera QCompare / evaluarlo posteriormente.
¿Ideas?
Actualizado:
Me estoy poniendo un fallo de segmentación cuando 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"));
Solución
Si todas las ventanas se han creado a través de su aplicación, se puede utilizar el clase QApplication
.
Por ejemplo, el activeWindow()
función devuelve el widget que tiene el foco de entrada . Pero hay un montón de otras funciones que le pueda ayudar.
Espero que ayude
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow