前序:为了加深对Qt各个类的认识和了解,决定以后再闲暇的时间对Qt类进行详细的阅读(基于Qt cteater 的帮助文档),这样既可以提高自己的英文阅读能力,也可以对各个类有一个更加深入的认识和了解。
注:整个对Qt的拆解和分析都是基于Qt 5.80
.开始啃帮助文档。以下总结不会对帮助文档全篇内容翻译,会在自己翻译的基础上加上自己的理解,进行一个简单的总结,以便在使用时忘记的时候复习查看。
目录
2.2 追加字符串(前追加prepend or push_front和后追加append or push_back)
2.4 字符串的裁剪(chop,truncate,resize,remove)
2.8 字符串的大小长度(count,size,length)
2.9 判断字符串是否以某一个子串开始(startsWith)
2.11 查找字符串获取第一次出现位置索引(indexof)
2.12 查找字符串获取最后一次出现位置索引(lastIndexof)
2.13 字符串的插入(insert,left,leftJustified,rightJustified)
2.19 字符串的简化(simplified,trimmed)
2.22 字符串------>数(toDouble,toInt......)
2.23 数------>QString字符串(setNum,number)
2.24 字符串的大小写转换(toLower,toUpper)
2.25 其他(at,begin,end,isEmpty,isNull,clear)
1.Detailed Description(详细描述)
①、首先QString字符串类是提供的基于Unicode的字符串。QString存储一个16位的QChar字符串,每个QChar对应一个Unicode 4.0字符,占用两个字节。②、同时,QString采取了implicit sharing(隐式共享)的技术(copy-on-write写时拷贝),这样可以减少内存的使用,避免不必要的复制数据。
QString的常用操作大致包括字符串类对象的构造
2.Public Functions 公有的函数
2.1 类对象的构造
QString() // 构造一个空串(null string)
QString(const QChar *unicode, int size = -1) // 构造QString类以QChar数组,以‘\0’为结尾
QString(QChar ch) // 以一个QChar字符构造QString
QString(int size, QChar ch) // 以size个QChar字符构造QString类
QString(QLatin1String str) //使用str(单字节编码)构造QString
QString(const QString &other) // 使用其他的QString类other构造改QString类
QString(const char *str) // 使用字符数组构造QString类
QString(const QByteArray &ba) //使用字节数组ba构造QString类
下面对上面的构造函数中一些常用的进行示例:
1、构造函数--->QString::QString(const QChar *unicode, int size = -1)
示例:
const QChar str[] = {'D','a','e','m','o','n','\0'} ;
QString s(str) ;
qDebug() << s ;
2、构造函数--->QString::QString(int size, QChar ch)
示例:
QChar qc('q') ;
QString qs( 6 , qc );
qDebug() << qs ;
3、构造函数--->QString::QString(QLatin1String str)
示例:
QLatin1String ql("QLatin1String") ;
QString qs( ql );
qDebug() << qs ;
4、构造函数--->QString::QString(const char *str)
示例:
const char str[] = " Daemon";
QString s( str ) ;
qDebug() << s ;
5、构造函数--->QString::QString(const QByteArray &ba)
示例:
const QByteArray ba("Hello DataBase") ;
QString s( ba ) ;
qDebug() << s ;
2.2 追加字符串(前追加prepend or push_front和后追加append or push_back)
QString s(" Qt ") ; // s = " Qt "
const QChar str[] = {' ','e','x','a','m','p','l','e','\0'} ;
s.append(str,8) ; // s = “Qt example”
s += " is"; // s = “Qt example is ”
s.push_back(" innovative"); // s = “Qt example is innovative"
s.push_front("Daemon ") ; // s = "Daemon Qt example is innovative"
qDebug() << s ;
2.3 组合字符串(arg)
1、QString arg(const QString &a,int fieldWidth = 0,QChar fillChar = QLatin1Char(' ')) const
注释:如果后两个参数按照默认的设置,函数的功能将First, arg(i) replaces %1. Then arg(total) replaces %2.
Finally, arg(fileName) replaces %3.以此类推。(numbers must be in the range 1 to 99.)
示例:
QString i(QString::number(007));
QString total("series");
QString fileName("Movies ");
QString status = QString("%1 is %2 of %3").arg(i).arg(total).arg(fileName);
qDebug() << status ;
但是仔细研究帮助文档的话,里面可以挖掘出额外的东西出来,见下:
2、QString arg(const QString &a,int fieldWidth = 0,QChar fillChar = QLatin1Char(' ')) const
第二个参数fieldWidth指定参数a应占用的最小空间量,如果a需要的空间小于fieldWidth,则使用字符fillChar填充到fieldWidth。
fieldWidth为正值时产生右对齐的文本。
fieldWidth为负值时产生左对齐的文本。
默认填充fillChar为空格,可自定义填充QChar字符。
QString para1("Git");
QString para2("GitHub");
QString para3("Better Study Heaven");
QString status = QString("%1 and %2 is %3").arg(para1 , -5 , QChar('a') )
.arg( para2 , 8 , QChar('b') )
.arg( para3 , -para3.length()-5 ) ;
qDebug() << status ;
3、QString arg(int a,int fieldWidth=0,int base = 10,QChar fillChar= QLatin1Char(' '))const
注释:此重载函数较前面的函数多路一个参数base,默认为10.其值必须在2~36
(which is 10 by default and must be between 2 and 36.),
其功能用于声明第一个参数a需要以base进制进行输出显示。
示例:
QString para1("65535");
QString para2(" hexadecimal number ");
QString status = QString("%1 and %2 is %3").arg(para1).arg( para2 )
.arg( 65535 , 0 , 16 ) ; //将65535以16进制显示
qDebug() << status ;