Qt学习之--QString

简介:

  QString在Qt出镜相当之高,几乎无处没有它的影子。QString是Qt中最常用的用于处理与存储字符串对象。在本小节中,与笔者一起学习它的使用方法。

1. 字符串连接

(1)使用+= 


QString str = "User: ";
str += userName + "\n";

(2)使用append 


str = "User: ";
str.append(userName);
str.append("\n");

2. 格式化

(1)使用sprintf


str.sprintf("%s %.1f%%" , "perfect competition", 100.0);

(2)使用arg() 


str = QString("%1 %2 (%3s-%4s)\n")
        .arg("permissive")
        .arg("society")
        .arg(1950)
        .arg(1970);

3. 与数值之间的转换

(1)数值-->字串


str = QString::number(59.3);
str.setNum(293.4);

   可以带参。对于整数,可以设置进制,如2进制,8进制之类。对于浮点数,可以设置其精度。

(2)字串-->数值

    通用格式: QString::to<DataType>(bool *isOK);  如:


bool isOk;
double d = str.toDouble(&isOk);
int i = str.toInt(&isOk);

4. 字串提取

(1)从字符串中提取指定位置的字符串


str = "polluter pays principle";
cout << str.mid(9, 4) << endl;  // 从第9位开始取4个字符: pays
cout << str.mid(9) << endl;     // 从第9位开始取后面的所有字符串: pays principle
cout << str.left(8) << endl;    // 取前8个字符: polluter
cout << str.right(9) << endl;   // 取后9个字符: principle

(2)字串定位 


str = "the middle bit";
int i = str.indexOf("middle");

    上面的代码返回4。若没有找到指定的字串,则反回-1。


5. 字串检查


if (url.starstWith("http:") && url.endsWith(".png"))

    判断字串是否是以"http:"开头,以".png"结尾的字串。


6. 大小字转换: toLower(), toUpper()

7. 替换: replace()

8. 去除字串两边的空格


str = " \t Hi, I am fine. \n";
cout << str;
cout << str.trimmed();

   输出结果,去除了字串前后两边的空格、制表符、换行符。

    注:str 本身没有发生变化。

9. 拆分与合并

(1)拆分,通过split()函数将QString拆分成QStringList。


str = "Peter,John,Lily,Lucy,Ken";
QStringList slist = str.split(',');


  将上述的人名通过','进行拆分。

(2)合并


<span></span>QStringList slist;
slist.append("Shanghai");
slist.append("Beijing");
slist.append("Shengzhen");
QString str1 = slist.join("/");<span></span> QString str1 = slist.join("/");
cout << str1;

将QStringList成员中所有QString单无用"/"合并成一个QString。

10. 字符串与QString转换

(1)字符串转QString,这个过程通常是自动转换的。


QString str1("hello");
QString str2 = "Hi";

(2)QString转字符串



目录
相关文章
|
2月前
|
定位技术 Go 开发工具
dynamic-situational-awareness-qt学习记录
本文是作者yantuguiguziPGJ关于dynamic-situational-awareness-qt学习记录的分享,介绍了在Qt学习过程中发现的qml资源丰富的代码仓库,并提供了资源路径和相关的安装、配置步骤,涉及的内容有数字地球、GIS纹理等,同时提供了相关链接和git命令来克隆代码仓库和ArcGIS Runtime SDK for Qt的安装说明。
|
4月前
|
C++
Qt中的信号与槽如何学习?(包括自定义信号)这篇文章告诉你
以现实中的事件来举例的话,例如有两把不同颜色的信号枪,分别是红色,绿色,打响不通颜色的信号枪会触发不同的槽发生,比如说打响红色这个人就跑步,绿色就走步,但是还有一个很重要的机制,那就是连接,我们需要把信号枪去跟这个人的动作连接起来。 如果上面理解没问题的话我们可以把信号和槽看成两个工具,我们最重要的是如何去把这两个工具连接起来。 它的作用可以让我们更加灵活的去使用不同窗口间的切换以及某些事件的连接。
|
4月前
|
开发者
Qt中的事件该如何学习?(附带案例)
事件是Qt中比较重要的一部分,在初期如果理解不当学习可能会比较困难,这里提一嘴当初教我的那位老师水平是真的高,让我很轻易的就理解了事件的概念。 在平时我们见到那些界面上的某些快捷键就有可能是事件做的,例如ESC关闭窗口,Enter提交或者登录这种类似的,这也是事件的强大之处。
|
6月前
|
C语言 容器
【qt】QString字符串2
【qt】QString字符串2
28 0
|
6月前
|
C++
【qt】QString字符串1
【qt】QString字符串1
47 0
|
6月前
【QFileDialog接口大全】 Qt5 QString类使用示例
【QFileDialog接口大全】 Qt5 QString类使用示例
40 1
|
6月前
QT去除QString字符串中空格的方法
QT去除QString字符串中空格的方法
230 0
|
6月前
|
C++
Qt定义属性类信息报错‘Qstring‘ was not declared in this scope; did you mean ‘xxx‘?并且还有有一堆报错,问题还出现在moc文件
Qt定义属性类信息报错‘Qstring‘ was not declared in this scope; did you mean ‘xxx‘?并且还有有一堆报错,问题还出现在moc文件
102 0
|
6月前
qt初入门0:结构体中QString用memset导致崩溃分析及QLatin1String简单查看源码
qt初入门0:结构体中QString用memset导致崩溃分析及QLatin1String简单查看源码
291 0
|
6月前
|
存储 自然语言处理 API
QT基础教程(QDebug和QString)
QT基础教程(QDebug和QString)
154 0