Qt中的数据类型基本分为三类:数值型数据,字符型数据,大小尺寸类型。以下就分别介绍:
一.数值型
qint8->1字节
quint8->1字节
qint16->2字节
quint16->2字节
qint32->4字节
quint32->4字节
qint64->8字节
quint64->8字节
qreal->8字节
二.字符型
前面的数值型比较简单,但字符类型就会很多也很重要。主要分为:QString 字符串,QByteArray 字节数组,QVariant 模糊数据类型,容器类型。详细如下:
1.QString类型的使用
QString str="这是初始化";
str.append("在str后面追加");
str.replace(0,3,str2); //用str2替换从0开始3个字符
str.remove(3,5);//从第3个字符开始,删除5个字符
str.insert(4, QString("插入字串"));//将字符串插入到第4个字符
QString().isEmpty();//判断为空,返回true;
QString("").isEmpty();//判断为非空,返回false,注意,这种情况返回的是false;
QString("aaa").isEmpty();//判断非空,返回false;
QString().isNull();//判断为空,返回true;
QString("").isNull();//判断为空,返回true;
QString("aaa").isNull();//判断为非空,返回false;
str.indexOf(str2);//查找字符串出现的位置;
str.contains("aa", Qt::CaseInsensitive);//不区分大小写查找是否包含指定字串
str.count("aa", Qt::CaseInsensitive);//不区分大小写查找指定字串出现次数
str.mid(3,4); //从第3个字符开始截取4个字符
str.mid(5); //从第5个字串开始截取后面所有字符
str = QString::number(22);//数字转字符串
str = QString("name: %1, age: %2").arg(str1).arg(str2);//格式化输入
std::string str1 = QString("aaa").tostdstring(); //QString转std::string
QString str = QString::fromStdString(str1); //std::string转QString
2.QByteArray 数组
用于存储原始字节的字串
QByteArray by("这是一个字符串");
//QByteArray转const char*
const char *p = by.constData();
//const char* 转 QByteArray
const char* p2 = "zzz";
QString str = QString(p2 );
QByteArray by = str.toUtf8();
//const char* 转 QByteArray
const char* p="zzz";
QByteArray by(QByteArray::fromRawData(p,3));
3.QVariant 类型
QVariant变量没有数据类型,一个QVariant对象在同一时间点只保存单一类型的单一值
QVariant常常用toT()来转换数据类型
QVariant v = 1.23; v.setValue(12); int n = v.toInt(); QString str = v.toString();
4.容器类型
4.1 QList 列表类型
insert(); //插入操作
replace(); //替换操作
removeAt(); //移除操作
move(); //移动操作
swap(); //交换操作
append(); //表尾添加
prepend(); //表头添加
removeFirst(); //移除第一个项
removeLast(); //移除最后一个项
indexOf(); //获取某个项的索引
4.2 QQueue 队列类型
先进先出的线性结构,队尾添加,队头移除
dequeue(); //队头移除并返回第一个元素
head(); //返回队头元素
isEmpty(); //判断队列是否为空
clear(); //清除队列
contains(); //检查队列是否包含特定值
4.3 QVector 数组类型
push_back(); //增加
insert(); //插入
remove(); //删除
replace(); //修改
indexOf(); //查找
startsWith(); //判断
fromStdVector(); //std::vector转为QVector;
toStdVector(); //QVector转为std::vector
4.4 QSet 集合类型
insert(); //插入元素
remove(); //删除元素
clear(); //清空对象
contains(); //查询元素
intersect();//两个集合交集
unite(); //两个集合并集
subtract(); //两个集合的差集
4.5 QMap 映射类型
insert(); //插入操作
value(); //获取值
contains(); //判断是否包含某个键
remove(); //删除某个键值对
take(); //删除某个键并获取对应值
clear(); //清空
insertMulti(); //插入一键多值
4.6 QHash 哈希类型
作为关联型容器,以键值对模式存储数据,查找插入删除很快,通过哈希函数将键映射到值
isEmpty(); //是否为空
count(); //获取个数
insert(); //插入元素
find(); //查找元素
swap(); //交换对象
以上容器通用算法
qAbs(); //取绝对值
qMin(); //取最小值
qMax(); //取最大值
qFind(); //查找特定值
qSwap(); //交换元素
qStableSort(); //稳定排序
qSort(); //排序
qCopy(); //对象拷贝
qFill(); //使用给定值对容器填充
三.位置尺寸类型
位置和尺寸类的在实际使用中通常处理界面,比如部件的位置,大小设定,布局等等,在此简单介绍一下:
QSize,QSizeF 表示大小宽高
QPoint,QPointF 表示位置像素点
QRect 表示位置宽高
QLine 直线类封装了两个坐标点
以上即Qt中常用的各种数据类型。