Ответ 1
Попробуйте использовать metaobject.
pWin->metaObject()->className();
Я пишу тестовое приложение, которое имитирует нажатие клавиш другого приложения. Для каждого нажатия клавиши я должен проверить, отображается ли правильное окно/форма. Итак, что я делаю, так это получаю указатель на отображаемое окно и получаю заголовок окна. Однако не все окна/формы показывают заголовки окон. Поэтому я думаю, что было бы лучше получить название класса вместо этого. Как я могу получить название класса?
QWidget *pWin = QApplication::activeWindow();
когда я пытаюсь:
pWin->className();
чтобы получить название класса, я получаю:
"ошибка: класс QWidget не имеет члена с именем 'className'"
Может кто-нибудь показать мне правильный путь?
Попробуйте использовать metaobject.
pWin->metaObject()->className();
Вы также можете проверить заголовок typeinfo. Используя оператор typeid на вашем объекте, вы получаете экземпляр type_info, который описывает тип вашего объекта. Отъезд: http://www.cplusplus.com/reference/std/typeinfo/type_info/