Подтвердить что ты не робот

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

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

QWidget *pWin = QApplication::activeWindow();

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

pWin->className(); 

чтобы получить название класса, я получаю:

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

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

4b9b3361

Ответ 1

Попробуйте использовать metaobject.

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

Ответ 2

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