web-dev-qa-db-fra.com

QT: récupère le nom de classe d'un objet

J'écris une application de test qui simule les appuis d'une autre application. Pour chaque pression sur une touche, je dois vérifier si la fenêtre/le formulaire de droite est affiché. Donc, ce que je fais est d'obtenir le pointeur de la fenêtre affichée et obtenir son titre de fenêtre. Cependant, toutes les fenêtres/formulaires ne montrent pas les titres de fenêtre. Je pense donc qu'il vaudrait mieux avoir le nom de la classe à la place. Comment puis-je obtenir le nom de la classe?

QWidget *pWin = QApplication::activeWindow();

quand j'essaye:

pWin->className(); 

pour obtenir le nom de la classe, je reçois:

"erreur: la classe QWidget n'a pas de membre nommé 'className'"

Quelqu'un peut-il me montrer le bon chemin?

22
Owen

Essayez d’utiliser le métaobjet .

pWin->metaObject()->className();  
48
J-16 SDiZ

Vous pouvez également vérifier l'en-tête typeinfo. En utilisant l'opérateur typeid sur votre objet, vous obtenez une instance type_info qui décrit le type de votre objet. Départ: http://www.cplusplus.com/reference/std/typeinfo/type_info/

0