2010-11-22 9 views
19

Ich schreibe eine Test-App, die Tastenbetätigungen einer anderen Anwendung simuliert. Bei jedem Tastendruck muss ich prüfen, ob das richtige Fenster/Formular angezeigt wird. Also, was ich tue, ist, den Zeiger des Fensters zu bekommen, das gezeigt wird, und seinen Fenstertitel zu erhalten. Allerdings zeigen nicht alle Fenster/Formulare Fenstertitel. Also denke ich, dass es besser wäre, stattdessen den Namen der Klasse zu bekommen. Wie bekomme ich den Namen der Klasse?QT: Erhalte den Klassennamen eines Objekts

QWidget *pWin = QApplication::activeWindow(); 

wenn ich versuche,

pWin->className(); 

die Namen der Klasse zu erhalten, ich bin immer

"Fehler: Klasse QWidget kein Mitglied hat namens 'classname'"

Kann mir jemand den richtigen Weg zeigen?

Antwort

42

Verwenden Sie die metaobject.

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