以下は、メニューでのキー押下をシミュレートするためのコード ブロックです。アプリケーションのメニューを深くナビゲートできますが、メイン フォームに戻ると、セグメンテーション エラーが発生します.... :(
最初にアプリケーションを表示します。
std::auto_ptr<MyForm> mainForm( new MyForm( 3, 3 ));
mainForm->show();
次に、keyPress をシミュレートしてメイン メニューを表示します。
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"));
次に、別の keyPress をシミュレートして、メイン アプリケーションに戻ります。
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"));
ここでセグメンテーション違反が発生しています...このエラーの原因を誰か教えてもらえますか?