QT:オブジェクトのクラス名を取得
-
27-09-2019 - |
質問
私は別のアプリケーションのキーの押下をシミュレートするテストアプリケーションを書いています。すべてのキーを押して、私は右側のウィンドウ/フォームが表示されているかどうかを確認する必要があります。だから私は何をすべきかは、ウィンドウのポインタが表示されて取得し、それのウィンドウタイトルを取得することです。しかし、すべてのウィンドウ/フォームは、ウィンドウのタイトルを示していません。私が考えているようではなく、クラスの名前を取得する方が良いだろう。どのように私はクラスの名前を得ることができますか?
QWidget *pWin = QApplication::activeWindow();
私がしよう。
pWin->className();
は、クラスの名前を取得するには、私は取得しています:
は、 "エラー:クラスのQWidgetは 'className' のという名前のメンバーを持っていない"
缶誰かが私に正しい方法を示して?
解決
メタオブジェクトに。
を使用してみてくださいpWin->metaObject()->className();
他のヒント
また、typeinfoのヘッダをチェックすることができ。あなたがあなたのオブジェクトの種類を説明しTYPE_INFOインスタンスを取得するには、オブジェクト上のtypeid演算子を使います。 チェックアウト: http://www.cplusplus.com/reference/std/typeinfo/type_info / の
所属していません StackOverflow