Qt: Как мне получить текущее работающее окно? - PullRequest
7 голосов
/ 18 ноября 2010

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

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

8 голосов
/ 18 ноября 2010

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

Надеюсь, что поможет

...