QT类库概述(003)

2019-03-03  本文已影响0人  独一无二的柠檬

*Qt核心特点

Qt类库概述.jpg
概述
Qt core模块是Qt类库的核心,所有其他模块都依赖于此模块,如果使用qmake来构建项目,Qt core模块将被自动添加。
比如:QT  +=core gui

元对象系统由三个基础组成:
1.QObject类是所有使用元对象系统的类的基类
2.在一个类的private部分声明Q_OBJECT宏,使得类可以使用元对象的特性,如动态属性,信号与槽。
3.MOC(元对象编译器)为每个QOject的子类提供必要的代码来实现元对象系统的特性。

属性系统
Qt提供一个Q_PROPERTY()宏可以定义属性,它也是基于元对象系统实现的。Qt的属性系统与C++编译器无关,可以用任何标准的C++编译器编译定义了属性的Qt C++程序。
信号与槽
Qt使用对象与槽的机制实现对象间通信,它隐藏了复杂的底层实现,完成信号与槽的关联后,发射信号时并不需要知道Qt是如何找到槽函数的。

*Qt全局定义
<QtGlobal>头文件包含了Qt类库的一些全局定义,包含基本数据类型,函数和宏,一般Qt类的头文件都会包含该文件,所以不用显式的包含这个头文件也可以使用其中的定义。
数据类型定义
为了确保在各个平台上各数据类型都有统一的长度,Qt为各种常见的数据类型定义了符号,如qint8就是signed chard的类型定义:

typedef signed char  qint8;

函数
<QtGlobal>头文件包含了一些常用函数的定义,这些函数多以模板类型作为参数返回相应的模板类型,模板类型可以用任何其他类型替换。
宏定义
<QtGlobal>头文件中定义了很多宏。

*容器类
Qt提供了多个基于模板的容器类,这些容器类可以用于存储指定类型的数据项,例如常用的字符串列表类QStringList就是从容器类QList<QString>继承的,实现对字符串列表的添加,存储,删除等操作。
Qt的容器类分为顺序容器和关联容器两类。
顺序容器类
Qt的顺序容器类有QList,QLinkedList,QVector,QStack和QQueue.
关联容器类
Qt的关联容器类有QMap,QMultiMap,QHash,QMultiHash和QSet.

*容器类的迭代
迭代器为访问容器类里的数据项提供了统一的方法,Qt有两种迭代器类:Java类型迭代器和STL类型迭代器,前者更易使用,且提供一些高级操作,后者的效率更高。
Java类型迭代器

STL类型迭代器
foreach关键字
*Qt类库的模块
Qt基本模块
Qt附加模块
增值模块
技术预览模块
Qt工具

上一篇下一篇

猜你喜欢

热点阅读