Qt文档阅读笔记-Object Model
Object Model
标准C++对象模型提供了非常有效的运行时的对象范例。但是他的静态属性在某些领域是不灵活的。图形用户界面的编程领域需要运行时的效率和高等级的灵活。Qt提供了这样能力,通过C++的效率与Qt Object Model的灵活性,达到这种效果。
Qt为C++增加了如下的特性:
1.通过信号与槽机制为对象提供了无缝交流;
2.可查询和可设计的object properties;
3.强大的事件以及事件过滤;
4.用于国际化的上下文字符串的转换;
5.复制精致的间隔驱动定时器,让事件驱动中的GUI能够更好的完成任务;
6.分层且可查询的object tree组织object ownership;
7.保护指针(QPointer)当对象被销毁的时候自动指向NULL,这个不同于C++的指针,C++的指针,当对象被消耗的时候就会产生指针悬挂问题;
8.跨平台的动态转化;
9.支持自定义类型的创建;
许多Qt的特性都是在标准C++技术创建的,基于QObject这个类。但The dynamic property system与信号与槽例外,他们需要Meta-object System,而元对象系统是Qt自己的元对象编译器提供的(moc);
meta-object系统是C++的扩展,这个meta-object系统使得C++语言更加适合GUI的编程。
Important Classes
这些类构成了Qt Object Model的基础。
1.QMetaClassInfo 关于QMeta相关类的附加信息;
2.QMetaEnum 关于枚举的Meta-data
3.QMetaObject 包含关于Qt objects的meta信息
4.QMetaProperty 关于Meta-data的性质
5.QMetaType 管理meta-object系统中的命名类型
6.QObject 这个是所有Qt对象的基类
7.QObjectCleanupHandler 观察多个QObject的生命周期
8.QPointer 模板类型,提供QObject的保护指针
9.QSignalBlocker 通过QObject::blockSignals()实现异常安全的包装
10.QSignalMapper 从可识别的发送者那绑定信号(可以实现那个对象发射的信号)
QVariant 最常见的Qt数据类型的集合
Qt Objects: Identity vs Value
上面列出了一些Qt object Model的附加特性,需要关注的是这个Qt objects他是那个类,而不是他里面的值,因为知道他是哪个类就可以知道他里面有啥值了!值是可以被拷贝或者重新分配的;identities是可以被克隆的,克隆就意味着创造了新的身份;并不是意味着和旧的一模一样的身份。举个例子,双胞胎都有2个不同的身份,他们虽然看起来一样,但他们有不同的名字,不同的社会地位,不同的社交圈。
克隆一个身份比拷贝一个数据的值更加的复杂。可以通过查看Qt Object Model来看这个对象的信息;
A Qt Object ...
1.有一个唯一的对象名QObject::objectName();
2.在对象树中有自己的位置;
3.能够连接其他的Qt能够连接其他的Qt Objects并且能发射信号和接收信号;
4.在运行时添加新的属性;
Qt的对象被视为一种标识,而不是值。
Qt文档阅读笔记-Object Model相关推荐
- Qt文档阅读笔记-Object Model初步解析
对象模型 标准C++对象模型提供了对象范式在运行时的高效性.但是他的一些静态性质在某些领域是不灵活的.在GUI程序中不仅要运行时的高效还需要较高的灵活性.Qt对象模型不急结合了C++运行时的高效并且还 ...
- Qt文档阅读笔记-Object Trees Ownership解析与实例(为何某些程序在被关闭的时候会崩溃)
目录 官方解析 Construction/Destruction Order of QObjects 博主栗子 继承里面构造函数与析构函数的顺序 在Qt中,object trees里面的创建与析构 [ ...
- Qt文档阅读笔记-共享库的创建与调用
使用共享库的符号 这个符号可以作用在变量.类.函数中,并且这些都可以被调用端使用. 在编译共享库中,需要使用export符号.在使用端调用的时候使用import符号. 这里是本人从文档中记录的笔记,大 ...
- Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图
Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图 QHeightMapSurfaceDataProxy:是Q3DSurface的一个基本代理类. 他是专门加载高度图. 高度图是没有X, ...
- Qt文档阅读笔记-Rotations Example相关
Rotations Example文档阅读笔记 使用这种方式,对y轴和z轴进行旋转. QQuaternion yRotation = QQuaternion::fromAxisAndAngle(0.0 ...
- Qt文档阅读笔记-Q_PROPERTY解析及实例
目录 官方解析 博主栗子 官方解析 这个宏用于继承于QObject的类声明属性.这样声明后的属性行为与类数据成员一样,但是他们可以通过元对象系统进行访问. Q_PROPERTY(type name(R ...
- Qt文档阅读笔记-QWebEngineView及QML WebEngineView
这里主要是最近有给Java Web项目及Qt项目需要混合,自己搞的QtWebEngine没有问题,而用了项目里面的,就有问题,在此阅读下官方资料,看看能不能解决这样莫名其妙的问题,在此记录下本次的阅读 ...
- Qt文档阅读笔记-moc工具使用及其理论(moc工具如何添加到makefile中)
moc(Meta-Object Compiler):用于处理Qt中关于C++的扩展. moc工具读取C++头文件,看看这个头文件里面的类是不是包含Q_OBJECT宏,它会将这个头文件,转换为带有met ...
- Qt文档阅读笔记-Fortune Client Example实例解析
目录 官方解析 实例代码 博主增加解析 官方解析 Fortune Client Example 以使用QTcpSocket为例子,服务端可以配合Fortune Server或Threaded Fort ...
最新文章
- stateflow中终止节点小记
- 接口向mapper传参数
- python列表删除多个相同元素_Python遍历列表删除多个元素或者重复元素
- 千万IOPS背后,宏杉科技“MS7000G2-Mach”为金融核心业务赋能
- 5-1MongoDB 实验——数据备份和恢复--edu上面的nosql题目
- 数据分析报告怎么写(四)
- 【判断一个数是不是素数】
- 因果推断 | 因果关系推断-系列电子书资源
- 最全 | 全国31个省市区重点产业布局
- Avro RPC的两种实现方法:静态实现和动态实现
- 白鹭引擎开发微信小游戏: API 调用教程文档
- vba批量复制工作表1并重命名
- 优先队列之堆排序((二)升级版)
- 基于Jsp+Servlet的户籍管理系统(JavaWeb毕业设计、课程设计)
- 生物发光及化学发光的原理及其应用
- 第九回(二):任侠厨子轻解厄围 夜半蹴鞠为泄忿闷[林大帅作品集]
- 华为手机打开图片很慢是怎么回事_华为手机打开相册反应慢
- 计算机wps素材,WPS Office 2012在线素材 让办公无需“步步惊心”
- Unity Emoji表情(图文混排)2022最详细教程
- 循环卷积和线性卷积以及快速卷积计算
热门文章
- 新手编程:程序员 5 种编程入门方法,快速学会一门编程语言!
- 产品经理有话说!这个报表神器更新了6大功能,绝对亮眼
- 7个理由,给你推荐这款“秒杀Excel”的分析神器!
- C++实现的队列queue
- 想加入IT行业为何建议你学Python,学完真值!
- 程序员不可能实现的6个愿望
- 除了写代码,程序员必备的6种软技能
- r语言 xmlto html,使用R语言将XML转换为CSV(示例代码)
- mac php编译freetype,Mac下本机自带PHP缺少freetype最终解决方案
- h5点击后字体加粗出现下边框_人力资源管理论文格式(字体+版式+打印)