QT:单元测试段故障
-
27-09-2019 - |
题
以下是在菜单上模拟按键的代码块。我能深深导航到我的应用程序的菜单,但是当我回到主窗体,我得到一个错误segmetation ....:(
第一我显示我的应用:
std::auto_ptr<MyForm> mainForm( new MyForm( 3, 3 ));
mainForm->show();
然后模拟一个按键,以显示主菜单:
QTest::keyPress(mainForm.get(), Qt::Key_0, NULL, 300);
QTest::keyRelease(mainForm.get(), Qt::Key_0, NULL, 300);
QWidget *pWin = QApplication::activeWindow();
QCOMPARE(QString(pWin->objectName()), QString("MainMenu"));
然后模拟另一个按键回到我的主要应用程序:
QTest::keyPress(pWin, Qt::Key_Escape, NULL, 300);
QTest::keyRelease(pWin, Qt::Key_Escape, NULL, 300);
pWin = QApplication::activeWindow();
QCOMPARE(QString(pWin->objectName()), QString("MainForm"));
这是我收到的分段错误...有谁能够告诉我是什么导致这个错误?
解决方案
开始与检查QApplication::activeWindow()
的结果。从文档..
返回应用程序顶层 拥有键盘输入窗口 焦点,或0,如果没有应用程序窗口 具有焦点。有可能是一个 则activeWindow(),即使没有 focusWidget(),例如,如果没有 窗口小部件在窗口受理的关键 事件
不隶属于 StackOverflow