QT: obtenir le nom de la classe d'un objet
-
27-09-2019 - |
Question
J'écris une application de test qui simule touches d'une autre application. Pour chaque pression de touche, je dois vérifier si la fenêtre de droite / formulaire est affiché. Alors ce que je fais est d'obtenir le pointeur de la fenêtre étant affichée et l'obtenir de titre de la fenêtre. Cependant, toutes les fenêtres / formes indiquées les titres de fenêtre. Donc, je pense qu'il serait préférable d'obtenir le nom de la classe à la place. Comment puis-je obtenir le nom de la classe?
QWidget *pWin = QApplication::activeWindow();
lorsque je tente:
pWin->className();
pour obtenir le nom de la classe, je reçois:
"erreur: QWidget n'a pas membre nommé 'className'"
Quelqu'un peut-il me montrer le droit chemin?
La solution
Essayez d'utiliser le métaobjets .
pWin->metaObject()->className();
Autres conseils
Vous pouvez également vérifier l'en-tête de typeinfo. Utilisation de l'opérateur typeid sur vous opposez 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 /