Qt:現在実行中のウィンドウを取得するにはどうすればよいですか?
-
26-09-2019 - |
質問
私はキーの押下をシミュレートするテスト アプリを作成していて、各キーが押された後にどのようなウィンドウが表示されるかを取得したいと考えています。コードブロックは次のとおりです。
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()
の機能は、入力フォーカスを持っているウィジェットを返します。しかし、あなたを助けることができる他の多くの機能があります。
タグ役に立てば幸い
所属していません StackOverflow