Qt:как получить текущее окно?

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

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

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

Какие Идеи?

обновление:

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

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

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