Qt5——常用类

一、QString类

QString类功能和标准C++中的string类类似,是用来对字符串进行操作的。QString类保存16位Unicode值,一个汉字算一个字符。

1.1 赋值

QString类字符串赋值方法和string类一样,直接赋值就可。

QString str = "Welcome!";

1.2 常用函数

1.2.1 拼接字符串

函数功能
append()在字符串后添加字符串
preappend()在字符串前添加字符串
  • append()
QString str1 = "Qt";
str1.append("无敌");// str1的值为“Qt无敌”
  • preappend()
QString str1 = "Qt";
str1.preappend("无敌");// str1的值为“无敌Qt”

1.2.2 查找字符串

函数功能
indexOf()在字符串中查找某个字符串
lastIndexOf()在字符串中查找某个字符串
contains()判断字符串中是否包含某个字符串

1.2.3 判断字符串是否为空

函数功能
isNull()字符串未赋值返回true,赋值了返回false
isEmpty()字符串未赋值或赋空值返回ture

1.2.4 去掉字符串中空格

函数功能
trimmed()去掉字符串首尾空格
simplified不仅去掉字符串首尾空格,还将字符串中间的空格用一个空格代替

1.2.5 字符串个数

函数功能
count()返回字符串中字符个数,空格也计算在内(一个汉字算一个字符)
size()返回字符串中字符个数,空格也计算在内(一个汉字算一个字符)
length()返回字符串中字符个数,空格也计算在内(一个汉字算一个字符)

1.2.6 大小写

函数功能
toUpper()将全部字符串转化为大写
toLower()将全部字符串转化为小写

1.2.7 取字符串

函数功能
left()从左边开始取
right()从右边开始取

1.3 隐式共享

QString在处理共享对象时,使用深拷贝和浅拷贝这两种方法复制对象。浅拷贝是一个引用复制(如仅复制指向共享数据的指针);深拷贝是生成对象的一个完整的复制品。当两个对象共享同一份数据时(通过浅拷贝实现数据块的共享),如果数据不改变,则不进行数据的复制。而当某个对象需要改变数据时,则执行深拷贝。

如下,str2 = str1将该QString对象str1赋值给另一个QString对象str2时执行的是浅拷贝,也就是让这两个QString对象指向同一个存储空间而并没有在单独为str2另开一个存储空间。而str2[3] = ’n‘对正在共享同一份数据的str2对象修改了数据,此时为了不改变str1的值,系统进行了一次深拷贝,也就是为str2单独开辟了一个存储空间用来存储str2的值。

QString str1 = "csdn";
QString str2 = str1;
str2[2] = 'n';

隐式共享可以降低对内存和CPU资源的使用率,提高程序的运行效率。它使得在函数(如参数、返回值)使用值传递更有效率。

Qt支持隐式共享的类,还包括:

  • 所有的容器类;
  • QByteArray、QBrush、QPen、QPalette、QBitmap、QImage、QPixmap、QCursor、QDir、QFont和QVariant等。

该博客会持续更新,建议收藏!

如果该博客中有任何问题,还请大家在下方评论区指出!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值