QT QString

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT QString相关的知识,希望对你有一定的参考价值。

参考技术A 一、QSting删除空白符

1、使用正则表达

str= str.remove( QRegExp("\\s") )//删除字符床中的所有空白符

2、使用simplified()方法

str = str.simplified()//删除字符串前后的所有空白符,中间的所有空白符使用单个空格替换

3、使用trimmed()方法

str = str.trimmed()//删除字符串前后的所有空白符

Qt中的QString::sprintf和QString::arg有啥区别?

【中文标题】Qt中的QString::sprintf和QString::arg有啥区别?【英文标题】:what is the difference between QString::sprintf and QString::arg in Qt?Qt中的QString::sprintf和QString::arg有什么区别? 【发布时间】:2010-12-01 09:23:12 【问题描述】:

http://doc.qt.io/qt-5/qstring.html#arg 中的 QString 文档说

使用 arg() 的一个优势 sprintf() 是 编号的地方标记可以改变,如果 应用程序的字符串是 翻译成其他语言,但 每个 arg() 仍将替换 编号最小的未替换位置 标记,无论它出现在哪里。

这是什么意思?谁能举例说明一下?

【问题讨论】:

arg() 的另一个优点:sprintf() 是deprecated。 【参考方案1】:
int day = 1;
int month = 12;
int year = 2010;
QString dateString = QString(tr("date is %1/%2/%3")).arg(month).arg(day).arg(year);
// dateString == "date is 12/1/2010";

使用德语翻译“Das Datum ist: %2.%1.%3”: dateString = "Das Datum ist: 1.12.2010"

【讨论】:

其实RHS的外层QString(...)是完全多余的……【参考方案2】:

假设我们从:

QString format("%1: %2 %3);

然后调用:

format.arg("something");

格式现在是:

“某事:%1 %2”

...意味着您可以随时构建字符串。

通过Qt的翻译机制可以改变位置标记的顺序,它允许你说:

format = tr("Hi, %1, I hope you are %2");

并将其添加到您的翻译表中,并为不同的语言设置不同的参数顺序。

【讨论】:

【参考方案3】:

要添加到 sje397 答案的东西:

当你的应用程序国际化时,你可以有这样的字符串:

QString formatInAnOtherLanguage("%3 %1 %2");

所以打电话的时候

formatInAnOtherLanguage.arg("something");

formatInAnOtherLanguage 将是

"%3 something %2"

这是 arg 函数相对于 sprintf 函数的主要优势

【讨论】:

以上是关于QT QString的主要内容,如果未能解决你的问题,请参考以下文章

pyqt4的编码问题Qstring怎么转换为string

C++Qt入门---Qt简介,第一个Qt程序,Qt按钮

qt编译问题

Linux 打包 QT 程序

QT学习之QT 下载安装

Qt 找不到服务 - “org.qt-project.qt.mediaplayer”