Qt: получите название класса объекта
-
27-09-2019 - |
Вопрос
Я пишу тестовое приложение, которое имитирует ключевые прессы другого приложения. Для каждого ключа нажмите, чтобы проверить, отображается ли правильное окно / форма. Итак, что я делаю, это получить указатель отображения окна и получить его заголовок окна. Однако не все окна / формы показаны заголовки окна. Так что я думаю, что было бы лучше получить имя класса вместо этого. Как я могу получить название класса?
QWidget *pWin = QApplication::activeWindow();
Когда я пытаюсь:
pWin->className();
Чтобы получить имя класса, я получаю:
«Ошибка: Class Qwidget не имеет члена имени« ClassName »»
Может кто-нибудь показать мне правильный путь?
Решение
Попробуйте использовать MetaObject..
pWin->metaObject()->className();
Другие советы
Вы также можете проверить заголовок TypeInfo. Использование оператора Typeid на объекте вы получите экземпляр Type_info, который описывает тип вашего объекта. Проверить: http://www.cplusplus.com/Reeference/std/typeinfo/type_info/