什么是Qt元对象系统
来源:互联网 发布:算法之美中文 编辑:程序博客网 时间:2024/04/27 18:36
Qt元对象系统,即meta object system(mos),提供了大家熟知的用于对象间信息传递的信号与槽机制,运行时类型信息和动态属性系统。
mos基于三件法宝:
一是QObject类,是所有Qt对象的基类,可以很好的使用mos。
二是Q_OBJECT宏,在类private部分声明,用于激活mos特性,例如动态属性、信号与槽。
三是元对象编译器,即meta object compiler(moc),为QObject的派生类提供了必要的代码以实现mos特性。例如Example.h中声明了Example类,继承自QObject类且使用了Q_OBJECT宏,那么moc就会找到用Q_OBJECT宏声明的这个Example类,然后生成一个moc_Example.cpp文件,记录了相关的mos代码。
mos中除了信号与槽这个核心外,还有一些实用的东西:
1、QObject::metaObject(),返回当前类的元对象信息,是个QMetaObject指针;
QObject::staticMetaObject也可以获取当前类的元对象信息,类型是QMetaObject。
2、QObject::inherits(),判断当前对象实例的类继承关系。
3、QObject::tr(),Qt语言国际化,返回类型是QString。
4、QObject::property()/setProperty(),通过属性名动态获取/修改属性值。
5、QMetaObject::className(),运行时返回类名,返回类型是char*。
6、QMetaObject::newInstance(),构造一个新的实例。
7、qobject_cast(),动态类型转换,类似于标准C++的dynamic_cast(),不同的是它不需要RTTI(run time type information)且不受动态库的限制。
- 什么是Qt元对象系统
- Qt元对象系统
- Qt元对象系统
- QT中的元对象系统
- Qt中的元对象系统
- Qt中的元对象系统
- Qt的元对象系统
- Qt 元对象系统 一
- Qt中的元对象系统
- Qt的元对象系统
- Qt的元对象系统
- qt 的元对象系统
- Qt 元对象系统(Meta-Object System)
- Qt 元对象系统(Meta-Object System)
- Qt 元对象系统(Meta-Object System)
- Qt 元对象系统之 "enum自省"
- QT中的元对象系统 简介
- Qt MetaObject System-- 元对象系统
- iOS调用系统相册、相机 显示中文标题
- 使用Simple-Spring-Memcached注解做缓存操作
- centos/ubutu x86-64 编译gcc-4.6.2 的经历
- 算法导论第11章 散列表(哈希表)
- 在yii 框架下 使用phpmailer 通过邮箱验证找回密码功能
- 什么是Qt元对象系统
- Python 中的 is 和 id
- 数组之makeObjectsPerformSelector:withObject:
- 江湖令:“GBF”强势维权,巨星股份成立长期维权基金千万,用于悬赏捉鬼
- 双重指针的疑惑
- JVM 内存预警排查
- Git的深入理解与GitHub托管服务的使用
- git clone Google的代码失败的解决方法
- cocos2dx 屏幕滑动(ScrollViewDelegate、TableViewDelegate)和屏幕触摸响应