在QT的代码中经常会看到Q开头的类型或控件,以下是对这些的一个梳理:
1 数据类
1.1 基本数据类型
类型 | 大小 | 大小 |
---|
bool | 8位(bit) | true / false |
qint8 | 8位 | signed char |
qint16 | 16位 | signed short |
qint32 | 32位 | signed int |
qint64 | 64位 | long long int |
quint8 | 8位 | unsigned char |
quint16 | 16位 | unsigned short |
quint32 | 32位 | unsigned int |
quint64 | 64位 | unsigned long long int |
float | 32位 | 使用IEEE754标准格式的浮点数 |
double | 64位 | 使用IEEE754标准格式的浮点数 |
const char* | 32位 | 指向字符串常量的指针,最后不能为0 |
1.2 数据类
类 | 说明 |
---|
OBitArray | 提供了位运算(AND、OR、XOR、NOT)的位数组(bit Array) |
QBrush | 定义了QPainter绘制图形的填充模式 |
QByteArray | 支持字节(Byte)数组的类,如果数组是Null,则O×FFFFFFFF(quint32) |
QColor | 基于RGB、HSV和CMYK值,支持颜色(Color)的类 |
QCursor | 定义鼠标光标图像的类 |
QDate | 提供日期功能(Function)的类 |
QDateTime | 提供日期和时间功能的类 |
QEasingCurve | 控制GUl动画运行模式的数据类 |
QFont | 为绘制文本而设置字体 |
QIcon | 提供不同模式和状态图标的类 |
QKeySequence | 指定快捷键(Shortcut)的类 |
QMargins | 定义矩形外边距量,left(int)、top(int)、right(int)、bottom(int) |
QMatrix | 为改变2D而定义的类 |
QMatrix4×4 | 为改变3D4×4而定义的类 |
QPalette | 包含各控件状态的颜色组的类QPen为绘制线条的风格、厚度、颜色提供的类 |
QPicture | 为处理图片(Picture)的格式提供的类 |
QPixmap | 为处理PNG等格式的图片提供的类 |
QPoint | 为处理X、Y、Z值提供的类 |
QQuaternion | 处理向量和标量构成的四元数(Quaternion)的类。四元数在3D空间中表示旋转,用于构成表示X、Y、Z坐标和旋转角度的标量指定的3D旋转面 |
QRect | 矩形的left(qint32)、top(qint32)、right(qint32)、botom(qint32) |
QRegExp | 处理正则表达式的类 |
QRegularExpression | 处理正则表达式的类 |
QRegion | 用于在Painter上定义剪贴板区域的类 |
QSize | 必须使用宽度和高度的目标类。宽度(qint32),高度(qimt32)QString为处理字符串提供的类,字符串为Nul时,则O×FFFFFFFF(quint32) |
QTime | 为使用时.分、秒、毫秒提供的类 |
QTransform | 用于图像描绘大小、剪切(shaear)、旋转、坐标等的类QUrl URL地址(QString)oVariant可保存多种数据类型的共用体(union)的类 |
QVector2D | 在二维空间表示向量(Vector)和顶点(vertex)的类QVector3D使用X.Y、乙三个坐标绘制或显示3D图像时使用的类。 |
QVector4D | 在四维空间表示向量和顶点的类 |
1.3 容器类
类 | 说明 |
---|
QHash<Key,T> | 提供散列表的字典(Dictionary)的模板类 |
QMap<Key,T> | 提供二叉搜索树(Binary Search tree)字典的模板类 |
QPair<T1,T2> | 处理成对存在的项目数据的模板类 |
QList< T > | 为操作列表形态值提供的模板类 |
QLinkedList < T > | 提供链表的模板类 |
QVector < T > | 为操作动态QVector数组提供的类 |
QStack< T > | 为使用包含push()、pop()、top()的栈(Stack)提供的类 |
QQueue< T > | 为使用enqueue()、dequeue()和head()操作FIFO结构的数据提供的类 |
OSet< T > | 为利用基于散列快速查找提供的类 |
QMap<Key,T> | Key值映射的数据集合为一组,提供字典;QMap类可以按健排序存储数据 |
QMultiMap<Key,T> | 继承自QMap的类,可以映射多种值 |
QMultiHash<Key,T> | 继承自QHash的类,可以利用散列映射多种值 |
1.4 字符串类
类 | 说明 |
---|
QByteArray | 支持字节数组的类,类似于网络文件传送,实现数据流时使用 |
QByteArrayMatcher | 利用QByteArray实现的字节数组索引查找对应字符串 |
QChar | 支持16位Unicode字符(Character)的类 |
QLatinlChar QLatinlString | 支持US-ASCII/Latin-1编码字符串的类 |
QLocale | 将数字或字符显示方式转换为相应的多语言表达方式 |
QString | 支持Unicode字符串的类 |
QStringList | 字符串列表的集合类 |
OStringMatcher | 为查找与Unicode String字符串相对应的字符串提供的类 |
QStringRef | size(),position()、tostring()等子串包装(Wrapper)类 |
QTextBoundaryFinder | 为查找与String字符串相同的所有字符串提供的类,提供搜索的字符串的NEXT/PREV功能 |
QTextStream | 为写或读取文本提供的类,在文件中读写数据时使用 |
1.5 一些常用函数
函数 | 功能 |
---|
T qAbs(const T&value) | 返回绝对值的函数。 |
const T&qBound(const T&min,const T&value,const T&max) | 返回最大值和最小值之间值的函数。 |
void qCritical(const Char*msg,.…) | 处理Critical消息的函数。 |
void qDebug(const Char*msg,.…) | 输出调试信息的函数。 |
void qFatal(const Char*msg,.…) | 处理错误信息的函数。 |
bool qFuzzyCompare(double p1,double p2)[static] | 比较浮点值的函数。 |
bool qFuzzyCompare(float p1,float p2)[static] | 比较浮动型值的函数,值相同则为true,否则返回false。 |
QtMsgHandler qlnstallMsgHandler(QtMsgHandler handler) | 用户自定义函数,输出Qt定义的调试、预警、严重(Debug/Warning/Fatal)等信息。 |
const T&qMax(const T&value1,const T&value2) | 返回两个值中的最大值。 |
const T&qMin(const T&value1,const T&value2) | 返回两个值中的最小值。 |
qint64 qRound64(qreal value) | 64位整形四舍五入函数 |
int qRound(qreal value) | 整形四舍五入函数。 |
2 控件 (Widget)
2.1 基础控件
以下是按钮(Buton),下拉列表框(Combo Box),滚动(Scrol)等可直接使用的控件:
控件 | 功能 |
---|
QCheckBox | 复选框(CheckBox)控件(包含Text Label) |
QComboBox | 单击按钮,可在弹出的选项中选择一个 |
QCommandLinkButton | Windows Vista风格的命令链接按钮 |
QDateEdit | 编辑或显示日期的控件 |
OTimeEdit | 编辑或显示时间的控件 |
QDateTimeEdit | 编辑或显示时间和日期的控件 |
QSpinBox | 整数旋转框(SpinBox)控件 |
ODoubleSpinBox | 可以使用Double数据型的旋转框 |
QPushButon | 普通按钮控件 |
QFocusFrame | 提供了当前绘画区域的焦点 |
OFoutComboBox | 可使用选择字体的下拉列表框控件 |
QLCDNumber | 显示LCD风格数字的控件 |
QLabel | 显示文本或图片的控件 |
QLineEdit | 单行(single line)文本框控件 |
QMenu | 可以在菜单栏(MenuBar)的菜单控件.Contcxt和弹出菜单中使用的控件 |
QProgressBar | 水平与垂直进度条 |
QRadioButton | 单选按钮控件(包含Text Label) |
QScrollArea | 可以扩展查看其他控件的滚动(Scrol)控件 |
QTabBar | TabBar控件(在标签对话框中使用) |
QTabWidget | Tab控件 |
QToolBox | 成列的Tab控件 |
QToolButton | 用于QtoolBox控件中,基于选项或命令可以快速访问的按钮控件 |
QWidget | 所有项目的基类 |
2.2 组合控件
分割(Splitter)、选项卡(Tab Bar)、按钮组(Button Group)等
控件 | 功能 |
---|
QButtonGroup | 按钮控件的组合容器(Container) |
QGroupBox | 带有标题的相同类型的组框(GroupBox Frame) |
QSpliter | 具有分割(Spliter)功能的控件 |
oSpliterHandle | 可以控制分割功能的控件 |
OStackedWidget | 可以使屏幕上同时显示多个控件 |
QTabWidget | Tab控件 |
2.3 抽象控件类
这部分是控件的基类,例如,QPushButton是QAbstractButton的子类
控件 | 功能 |
---|
QAbstractButton | 提供普通按钮功能的抽象类 |
QAbstractSerollArea | 在滚动条中提供必要功能的抽象类 |
QAbstractSlider | 使用给定范围内的整数值的抽象类 |
QAbstractSpinBox | 在旋转框和行编辑中显示值的抽象类 |
ODialog | 对话窗口的基类 |
QFrame | 存放框架控件的基类 |
2.4 布局管理器
布局管理器 | 说明 |
---|
QHBoxLayout | 水平布局控件 |
QVBoxLayout | 垂直布局控件 |
QGridLayout | 将控件布置为网格状 |
QBoxLayout | 可以水平或垂直布局控件的类,使用选项决定布局方向 |
2.5 高级控件
控件 | 说明 |
---|
QColumnView | 基于模型(Model)/视图(View)的列视图控件 |
QDataWidgetMapper | 连接控件和模型数据的映射(Mapping)类控件 |
QListView | 列表形态的视图控件 |
QTableView | 基于模型/视图的表格视图控件 |
QTreeView | 基于模型/视图的树形视图控件 |
QDesktopWidget | 用一个显卡访问多个虚拟的桌面画面的控件 |
QUndoView | 将撤销栈(Undo stack)的内容显示并输出到列表空间的控件 |
QCalendarWidget | 以日历形式显示用户选择的日期(以月为单位)的控件 |
QMacCocoaViewContainer | 打包(Wrapping)Cocoa视图类的Moc OSX的控件 |
QMacNativeWidget | 提供根据Qt构成方式,将Q控件添加到Cocoa各级结构方法的控件 |
2.6 对话框
对话框类型 | 说明 |
---|
QInputDialog | 用户可以输入值的对话框 |
OColorDialog | 可以选择指定颜色的对话框 |
QFileDialog | 提供选择文件或目录的GUI的对话框 |
OFontDialog | 可以选择字体的对话框 |
QMesageBox | 模式对话框,通过主窗口传送用户所选项目(例如:确认/取消)的返回值 |
OProgressDialog | 显示百分比进度的对话框 |
2.7 模型/视图
本节将介绍模型/视图框架结构,并介绍如何在QTreeView、QListView、QTableView上显示并处理数据列表项。
控件 | 说明 |
---|
QListView | 列表显示数据的控件 |
QTableView | 实现表格视图的模型/视图 |
QTreeView | 实现树形视图的模型/视图 |