QT: den Klassennamen eines Objekts erhalten
-
27-09-2019 - |
Frage
Ich schreibe eine Test-Anwendung, die Tastendrücke von einer anderen Anwendung simuliert. Für jede Taste drücken muss ich überprüfen, ob das rechte Fenster / Form dargestellt ist. Also, was ich tun ist, bekommen die Zeiger des Fensters angezeigt wird und es Fenstertitel erhalten. Allerdings sind nicht alle Fenster / forms Fenstertitel angezeigt. Also ich denke, es wäre besser, stattdessen den Namen der Klasse zu erhalten. Wie kann ich den Namen der Klasse bekommen?
QWidget *pWin = QApplication::activeWindow();
, wenn ich versuche:
pWin->className();
den Namen der Klasse zu erhalten, erhalte ich:
"Fehler: Klasse QWidget hat kein Mitglied namens 'classname'"
zeigen Kann jemand mir den richtigen Weg?
Lösung
Versuchen Sie es mit der Metaobjekt .
pWin->metaObject()->className();
Andere Tipps
Sie können auch die Typeinfo-Header überprüfen. Mit Hilfe der Operator typeid auf Sie Sie eine type_info Instanz erhalten Objekt, das den Typ des Objekts beschreibt. Check out: http://www.cplusplus.com/reference/std/typeinfo/type_info /