30

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

QWidget *pWin = QApplication::activeWindow();

私がしようとすると:

pWin->className(); 

クラスの名前を取得するには、次のように取得しています。

「エラー: クラス QWidget には 'className' という名前のメンバーがありません」

誰かが私に正しい方法を教えてもらえますか?

4

2 に答える 2

63

メタオブジェクトを使用してみてください 。

pWin->metaObject()->className();  
于 2010-11-22T03:22:36.380 に答える
0

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

于 2010-11-22T16:06:52.240 に答える