質問

私はキーの押下をシミュレートするテスト アプリを作成していて、各キーが押された後にどのようなウィンドウが表示されるかを取得したいと考えています。コードブロックは次のとおりです。

std::auto_ptr<MyForm> pForm(new MyForm(3,3)); 
QTest::keyPress(pForm.get(), Qt::Key_0); 

ここで 0 を押すと、ウィンドウが表示されます。後で比較/評価できるように、それがどのウィンドウであるかを確認したいと思います。

何か案は?

更新しました:

使用するとセグメンテーション違反が発生します

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"));
役に立ちましたか?

解決

すべてのウィンドウがアプリケーションによって作成されている場合は、使用することができます QApplication のクラス。 一例により、 activeWindow() の機能は、入力フォーカスを持っているウィジェットを返します。しかし、あなたを助けることができる他の多くの機能があります。

タグ役に立てば幸い
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top