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/