QT: получить имя класса объекта

Я пишу тестовое приложение, которое имитирует нажатие клавиш в другом приложении. Для каждого нажатия клавиши я должен проверить, отображается ли правильное окно/форма. Итак, я получаю указатель отображаемого окна и получаю его заголовок окна. Однако не все окна/формы, отображаемые заголовки окон. Поэтому я думаю, что было бы лучше получить название класса вместо этого. Как я узнаю название класса?

QWidget *pWin = QApplication::activeWindow();

когда я пытаюсь

pWin->className(); 

получить имя класс, я получаю

"ошибка: класс QWidget не имеет члена с именем "className""

может кто-то показать мне правильный путь?

2 ответов


попробуйте использовать метаобъекта.

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

вы также можете проверить заголовок typeinfo. Используя оператор typeid для объекта, вы получаете экземпляр type_info, который описывает тип вашего объекта. Проверьте: http://www.cplusplus.com/reference/std/typeinfo/type_info/