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启动的eventloop将quitNow设置为true,这导致exec立即返回。我现在正在寻找为什么这样设置,同时随时赐教我!
答案 0 :(得分:0)
这是因为我的cleanup()函数调用了qApp-> exit()。没有必要这样做!