2010-11-22 2 views
19

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

QWidget *pWin = QApplication::activeWindow(); 

при попытке

pWin->className(); 

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

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

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

ответ

42

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

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

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

Смежные вопросы