0
Я пишу тестовое приложение, которое будет проверять, является ли отображаемая форма правильной формой. Это происходит после нажатия клавиши в меню. Вот блок кода, где я получаю ошибку сегментации.QT unit-testing: qtestlib Ошибка сегментации
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"));
Вопросы:
- Действительно ли можно получить в настоящее время активное окно, когда вы только имитируя нажатие клавиши?
- Я получаю нулевой указатель при использовании activeWindow, есть ли в любом случае вы можете получить дескриптор окна, которое должно отображаться на экране при нажатии клавиши?
Благодаря ...
Две мысли: 1. убедитесь, что код, который вы ожидали бы действовать на Key_0, действительно запускается и создается меню. Если нет, попробуйте показать() форму. 2. Окно может не активироваться синхронно, но задерживается, тогда ваш код не будет работать. –
Спасибо, чувак ... ты был прав ... Я добавил задержку в keyPress, и это сработало! : D – Owen