Qt: Как мне получить текущее работающее окно?

Я пишу тестовое приложение, которое имитирует нажатия клавиш, и я хотел бы узнать, какое окно отображается после каждого нажатия клавиш. Вот блок кода.

std::auto_ptr<MyForm> pForm(new MyForm(3,3)); 
QTest::keyPress(pForm.get(), Qt::Key_0); 

После нажатия 0 здесь появится окно, и я хотел бы проверить, какое это окно, чтобы я мог сравнить / оценить его позже.

Есть идеи?

Обновлено:

Я получаю ошибку сегментации при использовании

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 ответ

Решение

Если все ваши окна были созданы через ваше приложение, вы можете использовать QApplication учебный класс. К примеру, activeWindow() Функция возвращает виджет, имеющий фокус ввода. Но есть много других функций, которые могут вам помочь.

надеюсь, это поможет

Другие вопросы по тегам