Я пишу тестовое приложение, которое имитирует нажатия клавиш, и я хотел бы получить, какое окно отображается после каждого нажатия клавиши. Вот блок кода.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 Это правильное решение. – Venemo
Я получаю ошибку сегментации. Я мог бы что-то сделать неправильно ... Я обновил блок кода выше ... :( – Owen
Как поясняется в документации, указатель возврата может быть нулевым, если в окне нет фокуса ввода. Это может произойти там, где вдова не имеет ввода клавиатуры виджет. Попытайтесь добавить QTextEdit в свои тестовые окна. –