【发布时间】:2011-05-12 12:09:52
【问题描述】:
我正在编写一个测试应用程序,用于测试显示的表单是否正确。这是在按下菜单上的一个键之后。这是我遇到分段错误的代码块。
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 的代码是否实际被触发并创建了菜单。如果没有,请尝试 show() 表单。 2. 窗口可能没有同步激活,而是延迟了,那你的代码就不行了。
-
谢谢老兄......你是对的......我在 keyPress 中添加了延迟,它起作用了! :D
标签: c++ unit-testing qt user-interface qtestlib