Meta-objeto System - Meta-object System
Sistema Objeto Meta é uma parte do Qt quadro núcleo fornecidas para suportar extensões Qt para C ++ como sinais / ranhuras para comunicação inter-objeto, em tempo de execução informação do tipo e do sistema de propriedade dinâmica.
Arquitetura
O sistema de objetos Meta é composto por 3 coisas: QObject classe , Q_OBJECT macro e uma ferramenta chamada moc (Meta-Objeto do compilador ). QObject é a classe de base para todas as classes Qt, Q_OBJECT macro é utilizado para activar as funções de meta-objectos das classes e finalmente moc é um pré-processador que muda Q_OBJECT instâncias macro para C ++ código fonte para permitir mecanismo sistema meta-objecto na classe em que é usava.
Usando o sistema de objetos meta trouxe algumas críticas. Em Qt documentação, várias razões foram dadas para o uso do sistema de objetos meta, incluindo os benefícios de geração de código , dinamismo das GUIs , ligação automática para linguagens de script, e não limitações adição e também um desempenho razoável em sinal de implementação / slot com moc. Há alguns esforços para tornar desnecessária Qt de um pré-processador. Esses esforços incluem a re-implementação Qt moc usando libclang.