Qt: Obtenha o nome da classe de um objeto
-
27-09-2019 - |
Pergunta
Estou escrevendo um aplicativo de teste que simula as pressões das teclas de outro aplicativo. Para cada pressionamento de teclas, tenho que verificar se a janela/formulário correta é mostrada. Então, o que eu faço é obter o ponteiro da janela sendo mostrado e obter o título da janela. No entanto, nem todas as janelas/formulários mostraram títulos de janelas. Então, acho que seria melhor obter o nome da classe. Como posso obter o nome da classe?
QWidget *pWin = QApplication::activeWindow();
Quando eu tento:
pWin->className();
Para obter o nome da classe, estou recebendo:
"Erro: a classe Qwidget não tem nenhum membro chamado 'ClassName'"
Alguém pode me mostrar o caminho certo?
Solução
Tente usar o metaObject.
pWin->metaObject()->className();
Outras dicas
Você também pode verificar o cabeçalho TypeInfo. Usando o operador TypeId em seu objeto, você obtém uma instância do tipo_info que descreve o tipo de seu objeto. Verificação de saída: http://www.cplusplus.com/reference/std/typeinfo/type_info/