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手动启动每个测试。(框架没有改变,我相信)
有什么想法可能导致这种情况吗?
编辑:
上例中由messagebox启动的事件循环已将quitNow设置为true,这导致exec立即返回。我现在正在寻找为什么要这样做,同时请随意启发我!
这是由于在我的cleanup()函数中调用了qApp->exit()。没有必要这么做!