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()
Функция возвращает виджет, имеющий фокус ввода. Но есть много других функций, которые могут вам помочь.
надеюсь, это поможет