Qt中的数据类型

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中常用的各种数据类型。

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值