【发布时间】:2014-05-29 09:29:32
【问题描述】:
我需要使用 qtest(在 eclipse 中)在 c++ qt 中自动化 gui 测试 我提供了一个函数,可以将一些选项卡添加到选项卡小部件(最多 9 个),如果您尝试打开第 10 个选项卡,则会出现一个 QMessageBox:
QMessageBox::critical(this, "MAX9",
tr("Only a maximum of 9 tabs can be opened.\n"));
因为整个菜单都带有“添加选项卡”功能并且所有内容都是私有的,所以我必须使用来自我的测试类的槽和信号来访问该方法。
现在我的问题是,有没有办法可以检查是否有任何 QMessageBoxes 打开,如果是,自动关闭它们?
编辑:已解决 我将 vahancho 的解决方案放入一个方法 (CloseMessageBoxes) 中,并在我的测试方法中创建了一个计时器,然后调用 CloseMessageBoxes() 方法:
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(CloseMessageBoxes()));
timer->start(5000);
出现了多个消息框,但都在 5 秒后自行关闭。
【问题讨论】:
-
天哪,我需要 Python 中的这个答案
-
@FoggyMindedGreenhorn 您能否针对 Python 版本提出一个不同的问题并分享链接?我有一个可能有帮助的答案,我不想用那个答案来淡化这个问题。
标签: c++ qt qmessagebox