Qt元对象系统

一、 基本概念

1 Qt 的元对象系统是 Qt 对原有的 C++ 进行的一些扩展,提供的功能有:
对象间通信的信号和槽机制、运行时类型信息和动态属性系统等
2、要使用元对象系统的功能,需要满足以下三个条件:
①、该类必须继承自 QObject 类,继承顺序排在第一个。
②、必须在类声明的私有区域添加 Q_OBJECT 宏,该宏用于启动元对象特性,然后便可使用动态特性、信号和槽等功能了。
③、元对象编译器 (moc) 为每个 QObject 的子类,提供实现了元对象特性所必须的代码。
3、元对象系统具体运行原则:
① 因为元对象系统是对 C++ 的扩展,因此使用传统的编译器是不能直接编译启用了元对象系统的 Qt 程序的,对此在编译 Qt 程序之前,需要把扩展的语法去掉,该功能就是 moc 要做的事。
②  moc 全称是 Meta-Object Compiler( 元对象编译器 ) ,它是一个工具 ( 类似于 qmake), 该工具读取并分析 C++ 源文件,若发现一个或多个包含了 Q_OBJECT 宏的类的声明,则会生成另外一个包含了 Q_OBJECT 宏实现代码的 C++ 源文件 ( 该源文件通常名称为 moc_*.cpp) ,这个新的源文件要么被 #include 包含到类的源文件中,要么被编译键接到类的实现中( 通常是使用的此种方法 ) 。注意:新文件不会“替换”掉旧的文件, 而是与原文件一起编译。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值