Qt文档阅读笔记-Object Model初步解析
对象模型
标准C++对象模型提供了对象范式在运行时的高效性。但是他的一些静态性质在某些领域是不灵活的。在GUI程序中不仅要运行时的高效还需要较高的灵活性。Qt对象模型不急结合了C++运行时的高效并且还相当的灵活。
Qt在C++的基础上海增加了如下特征:
1. 一个强大的机制使得各个对象之间无缝交流:信号和槽;
2. 可查询及可被识别:对象属性;
3. 强有效的事件及事件过滤;
4. 国际化上下文字符串翻译;
5. 复杂的驱动计时器,在以事件为驱动的GUI中进行优雅的调用;
6. 对象树:使得各个对象都有所属;
7. 自定义类型的创建
上述的有些特征是通过在标准C++上继承得到的,如QObject。信号与槽,属性系统是由元对象系统提供的,也就是Qt自己的Meta-Object Compiler。
元对象系统是C++的扩展【这里要注意官方对元对象系统用的词是extension,而国际化上下文等用的是implement】的,这样特性更好的构成了GUI编程。
下面的类都是Qt的对象模型:
QMetaClassInfo | 关于类的附加信息 |
QMetaEnum | 关于枚举器的元数据 |
QMetaMethod | 关于成员函数的元数据 |
QMetaProperty | 关于属性的元数据 |
QMetaType | 管理元对象系统的命名类型 |
QObject | 所有Qt对象的基类 |
QSignalBlocker | 对安全异常的封装与QObject::blockSignals()一样 |
QObjectCleanupHandler | 监控多个QObject的运行周期 |
QMetaObject | 包含关于Qt对象的元信息 |
QPointer | 提供指向QObject的受保护模板类 |
QSingalMapper | 绑定可以被识别的发送方的信号 |
QVariant | 最常见的Qt数据类型的结合体 |
Qt Objects:身份与值
身份是包含一些特征的。比如双胞胎,虽然他们看起来很像(值一样),但有不同的身份。
克隆身份是比复制以及赋值更为复杂的。
如何理解上面克隆身份,比如:
克隆身份要考虑QObject::objectName()是否唯一。
object层次结构上,克隆的QtObject在object层次结构上该如何保证。
在运行时向某个对象加了个特别的属性,克隆时是否也需要保证。
所以Qt对象都是一种标识,而不是一个值。所以QObject的类或子类都禁止其拷贝和赋值操作。
Qt文档阅读笔记-Object Model初步解析相关推荐
- Qt文档阅读笔记-Object Model
Object Model 标准C++对象模型提供了非常有效的运行时的对象范例.但是他的静态属性在某些领域是不灵活的.图形用户界面的编程领域需要运行时的效率和高等级的灵活.Qt提供了这样能力,通过C++ ...
- Qt文档阅读笔记-Object Trees Ownership解析与实例(为何某些程序在被关闭的时候会崩溃)
目录 官方解析 Construction/Destruction Order of QObjects 博主栗子 继承里面构造函数与析构函数的顺序 在Qt中,object trees里面的创建与析构 [ ...
- Qt文档阅读笔记-Broadcast Sender Example解析
此例子展示了使用Qt Network API发送广播包 程序结构如下: 代码如下: sender.h #ifndef SENDER_H #define SENDER_H#include <QWi ...
- Qt文档阅读笔记-Broadcast Receiver Example解析
这篇博文的例子是说明如何在局域网上搭建广播包接收端. 这里使用了Qt Network API,搭建本地广播包接收端. 结构如下: 代码如下: receiver.h #ifndef RECEIVER_H ...
- Qt文档阅读笔记-Custom Items Example解析
这个实例展示了在图中添加自定义item.并且演示了如何去移动. Obj网格文件添加到资源文件中. 注意:一般是在meshes上增加纹理,这里可以直接用QImage添加一个单独的颜色. QImage c ...
- Qt文档阅读笔记-GridLayout QML Type解析与实例
目录 基本概念 代码与实例 基本概念 如果QGridLaout大小被调整,所有item的布局都将会重新排列.和widget的QGridLayout一样.如果想要一行或一列的布局可以使用RowLayou ...
- Qt文档阅读笔记-Image QML官方解析与实例
目录 官方解析 博主例子 官方解析 Image Image用于展示图片. 使用source属性可以使用URL指定一张图片. 只要是Qt能打开的图片都支持,如果要展示动态图,要使用:BnimatedSp ...
- Qt文档阅读笔记-Widgets Tutorial官方解析及实例
目录 官方解析 博主栗子 官方解析 QWiget通常作为其他窗口的容器,可以使用QWidget到达最小代价定义自定义控件(经验:通常可以采用子类QLabel做成自定义控件) 可以通过构建他的父类对象来 ...
- Qt文档阅读笔记-easingCurve:QEasingCurve官方解析及实例
目录 官方解析 博主例子 官方解析 easingCurve:QEasingCurve 这个属性保留了动画的缓和曲线. 他定义了缓和取消,默认情况下,使用线性缓和曲线,产生线性插入值.下面举出其他曲线的 ...
最新文章
- 清华副校长杨斌 :“祛魅”, 科技创新需要避免教育“人性”缺失
- 20189216 2018-2019-2 《密码与安全新技术专题》第七次作业
- 好好学python · 元组
- 子查询in和表连接效率
- 【数据分析】“上海名媛”其实是“拼夕夕名媛”,数据分析告诉你真实的名媛其实都是什么样子!...
- 【转】应用架构一团糟?如何将单体应用改造为微服务
- SpringBoot2.0整合Mybatis-Plus多数据源
- sphinx java_把 sphinx 官方提供的 java api 添加到 maven 库
- pythontuple_python:tuple 真是鸡肋吗
- iOS底层探索之Block(四)——Block的探索和源码分析
- 三菱FX3UFX2NFX1N PLC 模拟器模拟通信功能,模拟PLC实体
- 0704暑假集训前的欢乐大杂烩总结
- 文本超过指定行数折叠
- 组合数学$1排列组合
- Win10中安装Oracle11g
- 软件项目管理第一章---项目管理概念
- 【JEECG技术文档】JEECG平台对外接口JWT应用文档V3.7.2
- python flask简单使用
- M 平台按键强制升级流程分析
- html网页引导,网站引导功能实现
热门文章
- [Think]故事几则
- TreeViewVisitor: 一个快捷访问 TreeView 控件节点的帮助类
- 地产遇冷之际,行业竞争加剧,房企如何走出营销低谷,先声夺人?
- 0基础怎么做可视化大屏?2种可以节省95%时间的方法教给你
- 一辈子的礼物56ay长沙论坛
- 我是程序员,我比较喜欢有纪律的团队。
- 飞鸽传书是怎么就变成飞秋了的?
- ★_当第二次检测时我的65047777
- Html 进行DOM 操作(放缩,颜色...),HTML抓图(放缩,滚动,拼接)
- 3个月的SHELLCODE研究成果-一个最简单的Shellcode