2010-11-19 53 views
0

我正在编写一个测试应用程序,测试显示的窗体是否是正确的窗体。这是在按下菜单上的一个键后。这是一个代码块,我得到了分段错误。QT单元测试:qtestlib分段错误

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

两个想法:1.检查您希望在Key_0上执行的代码是否实际上被触发并创建菜单。如果不是,尝试显示()表单。 2.窗口可能未被同步激活,但延迟,那么您的代码将无法工作。 – 2010-11-19 08:37:28

+0

Thanks dude ...你是对的...我在keyPress中添加了一个延迟,它工作! :d – Owen 2010-11-19 10:05:45

回答

0

弗兰克是正确的。该窗口尚未同步激活。添加一个作为keyPress参数的延迟解决了这个问题。谢谢弗兰克!