Qt 4.7.1
У меня есть настройка qttest, которая до недавнего времени работала хорошо. Я столкнулся и столкнулся с необходимостью взаимодействия с модальными диалоговыми окнами с помощью таймеров одиночной съемки.
Однако сейчас я наблюдаю противоположное поведение; такие вызовы, как QFileDialog :: getSaveFileName, возвращаются сразу, без отображения диалога. Это потому, что я выполнил слияние, поэтому я предполагаю, что за этим стоит какой-то код или изменение сборки, но это не сам вызов функции.
Что касается примера кода, я не могу опубликовать всю свою инфраструктуру или AUT, но учтите следующее внутри тестовой функции:
QMessageBox::StandardButton button = QMessageBox::question(NULL,"Thing",
"Do you want to do a thing?",
QMessageBox::StandardButton::Yes | QMessageBox::StandardButton::No);
Вызов немедленно возвращается, и для кнопки установлено значение NoButton. Я должен добавить, что вокруг моих тестов есть некоторый каркас, и я запускаю каждый тест вручную с помощью QTest :: qExec. (Рамки не изменились, в этом я уверен)
Любые идеи о том, что может быть причиной этого?
Редактировать:
Eventloop, запущенный в окне сообщения в вышеприведенном примере, имеет значение quitNow, равное true, что приводит к немедленному возврату exec. Я теперь ищу, почему это установлено, в то же время не стесняйтесь просветить меня!
Это было связано с вызовом qApp-> exit () в моей функции cleanup (). Нет необходимости делать это!
Других решений пока нет …