2010-11-22 52 views
19

私は別のアプリケーションのキープレスをシミュレートするテストアプリケーションを作成しています。すべてのキーを押すごとに、正しいウィンドウ/フォームが表示されているかどうかを確認する必要があります。だから、私がすることは、ウィンドウのポインタが表示され、ウィンドウのタイトルを取得することです。ただし、すべてのウィンドウ/フォームでウィンドウタイトルが表示されるわけではありません。だから、代わりにクラスの名前を得る方がいいと思っています。どのように私はクラスの名前を取得?私はクラスの名前を取得するためにQT:オブジェクトのクラス名を取得

pWin->className(); 

をしようとすると、

QWidget *pWin = QApplication::activeWindow(); 

、私は

"エラー:クラスQWidgetのが 'className' のという名前のメンバーを持っていない" そうだ

を誰かが私に正しい方法を示すことができますか?

答えて

42

metaobjectをお試しください。

pWin->metaObject()->className(); 
0

また、typeinfoヘッダーを確認することもできます。オブジェクトのtypeid演算子を使用すると、オブジェクトのタイプを記述するtype_infoインスタンスが得られます。 チェックアウト:http://www.cplusplus.com/reference/std/typeinfo/type_info/

関連する問題