2010-11-19 10 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

2つの考え:1. Key_0で動作すると予想されるコードが実際に起動され、メニューが作成されていることを確認します。そうでない場合は、フォームを表示してみてください()。 2.ウィンドウは同期して起動されないかもしれませんが、遅れてしまい、コードが機能しません。 –

+0

おかげで...あなたは正しい...私はkeyPressに遅れを加え、それは働いた! :D – Owen

答えて

0

フランクは正しかったです。ウィンドウは同期して起動されていません。 keyPressのパラメータである遅延を追加することで問題は解決されました。おかげでフランク!

関連する問題