QT: Como faço para obter a janela atualmente em execução?
-
26-09-2019 - |
Pergunta
Estou escrevendo um aplicativo de teste que simula pressionamentos de teclas e gostaria de obter qual janela é exibida após cada tecla pressiona. Aqui está o bloco de código.
std::auto_ptr<MyForm> pForm(new MyForm(3,3));
QTest::keyPress(pForm.get(), Qt::Key_0);
Depois de pressionar 0 aqui, uma janela vai aparecer e eu gostaria de verificar qual a janela é para que eu pudesse qcompare/avaliá -la mais tarde.
Alguma ideia?
Atualizada:
Estou recebendo uma falha de segmentação 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"));
Solução
Se todas as suas janelas foram criadas através do seu aplicativo, você pode usar o QApplication
classe. Por exemplo, o activeWindow()
A função retorna o widget que possui o foco de entrada. Mas há muitas outras funções que podem ajudá -lo.
espero que ajude
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow