标签: qstring

QString :: arg()在占位符后面带有数字

我想在字符串上使用.arg().这是一个例子:

qDebug() << QString("%11%2").arg(66).arg(77);
Run Code Online (Sandbox Code Playgroud)

我想得到输出,66177但当然这不是实际输出,因为%11被解释为占位符#11而不是占位符#1后跟一个文字1.

有没有比以下更好的解决方案?

qDebug() << QString("%1%2%3").arg(66).arg(1).arg(77);
Run Code Online (Sandbox Code Playgroud)

qstring qt

8
推荐指数
1
解决办法
551
查看次数

QString :: toDouble()给了我双精度错误

我有一个包含"09338.712001"的QString myNumber.当我做:

myNumber.toDouble();,它返回9338.71,但我希望double是原始值,即09338.712001.有谁知道如何让toDouble返回的double与QString具有相同的精度?谢谢.

precision double qstring qt

7
推荐指数
1
解决办法
2万
查看次数

Qt:格式化QString中的整数

我想格式化一个整数QString.我想总是有6个号码.例如,"1"应为"000001","12"应为"000012".

我试着这样做printf(%06d, number).所以我写了这个

QString test; test = QString("%06d").arg(QString::number(i)); qDebug()<<test;

我是在循环中实现的for.但是因为我有以下情况它不起作用:

"0d""1d""2d""3d"......

有人知道怎么做吗?

c++ format qstring qt integer

7
推荐指数
1
解决办法
1万
查看次数

如何从qt中的字符串中获取子字符串?

我有一个文本表格:

Last Name:SomeName, Day:23 ...etc
Run Code Online (Sandbox Code Playgroud)

从姓氏:SomeName,我想获得姓氏,并单独SomeName.

我试过使用QRegularExpression,

QRegularExpression re("(?<label>\\w+):(?<text>\\w+)");
Run Code Online (Sandbox Code Playgroud)

但我得到了结果:

QString label = match.captured("label") //it gives me only Name
Run Code Online (Sandbox Code Playgroud)

我想要的是任何文字,直到":"为标签,然后是文本.

有任何想法吗?

c++ regex qstring qt qregularexpression

7
推荐指数
1
解决办法
3万
查看次数

在Qt中没有分配的情况下将(多个!)数字转换为字符串的正确方法

TL;博士

我想QString::number(int)每秒多次打电话.它非常慢:似乎每次都分配一个新的字符串.尝试使用setNum相同的字符串代替,仍然没有喜悦.


原来的长问题:

问题

我有一大堆数字(比如整数),我想将它们格式化为文本,然后(可能不会立即)写入文件.天真的方式看起来像这样大约1:

QString allData;
foreach(const int & value, values) {
    allData += QString::number(value);
    allData += '\n';
}
Run Code Online (Sandbox Code Playgroud)

我机器上的150000整数需要大约280ms,这对我来说似乎很重要.我想这是因为被调用150000次并且每次都分配新的字符串.当我尝试使用(不分配内存)时,这被证实是问题的根源.QString::numberitoa

可能,但不是Qt [not-cute]解决方案

QString allData;
char buffer[100];                               // <-------
foreach(const int & value, values) {
    _itoa_s(value, buffer, sizeof(buffer), 10); // <-------
    allData += buffer;
    allData += '\n';
}
Run Code Online (Sandbox Code Playgroud)

对于相同的150000个整数(大约快4倍),这需要大约70ms,这对我来说是现在可以接受的(我想我也可以使用字符串连接做一些事情,但是让我们把它留在这个问题之外)

我不喜欢我必须使用一些不标准的,可能已被弃用的,可能是不可移植的2功能(并不是说这看起来很难看).

然后我记得还有一个实例方法:QString::setNum.我希望我可以使用与以下相同的模式itoa:只分配一个字符串并每次修改它. …

c++ performance qstring qt itoa

7
推荐指数
1
解决办法
1206
查看次数

将带有百分比编码的QUrl转换为字符串

我使用用户输入的URL作为文本来初始化QUrl对象.后来我想将QUrl转换回字符串以显示它并使用正则表达式进行检查.只要用户没有输入任何百分比编码的URL,这就可以正常工作.

为什么以下示例代码不起作用?

qDebug() << QUrl("http://test.com/query?q=%2B%2Be%3Axyz%2Fen").toDisplayString(QUrl::FullyDecoded); 
Run Code Online (Sandbox Code Playgroud)

它根本不解码任何百分比编码的字符.它应该打印"http://test.com/query?q=++e:xyz/en"但实际打印"http://test.com/query?q=%2B%2Be%3Axyz%2Fen".

我还尝试了许多其他方法,如fromUserInput(),但我无法在Qt5.3中使代码正常工作.

有人可以解释我如何做到这一点,以及为什么上面的代码不起作用(即显示解码的URL),即使使用QUrl :: FullyDecoded?

UPDATE

获取fromPercentEncoding()提示后,我尝试了以下代码:

QUrl UrlFromUserInput(const QString& input)
{
   QByteArray latin = input.toLatin1();
   QByteArray utf8 = input.toUtf8();
   if (latin != utf8)
   {
      // URL string containing unicode characters (no percent encoding expected)
      return QUrl::fromUserInput(input);
   }
   else
   {
      // URL string containing ASCII characters only (assume possible %-encoding)
      return QUrl::fromUserInput(QUrl::fromPercentEncoding(input.toLatin1()));
   }
}
Run Code Online (Sandbox Code Playgroud)

这允许用户输入unicode URL和百分比编码的URL,并且可以解码这两种URL以进行显示/匹配.但是,百分比编码的URL在QWebView中不起作用... Web服务器响应不同(它返回了不同的页面).很明显,QUrl :: fromPercentEncoding()不是一个干净的解决方案,因为它有效地改变了URL.我可以在上面的函数中创建两个QUrl对象...一个直接构造,一个使用fromPercentEncoding()构建,第一个用于QWebView,后者仅用于显示/匹配......但这看起来很荒谬.

qstring qt urlencode qurl

7
推荐指数
1
解决办法
1万
查看次数

在 Qt 中;将 QString 中每个单词的第一个字母大写的最佳方法是什么?

我正在考虑正则表达式,但这并不完全可读。还有一些功能s.toUpper()需要考虑,可能还有其他事情。

那么将 QString 中单词的首字母大写的最佳方法是什么?

c++ regex string qstring qt

7
推荐指数
1
解决办法
6333
查看次数

如何在 Qt 小部件中使用 QStringView(或 QStringRef)?

我正在尝试用更轻的替代品( / )QString来代替重的类别。问题是 Qt 小部件无论如何都不会使用这些类。例如,该方法需要作为输入参数,使我的改进毫无用处。QStringRefQStringViewQLabel::setTextconst QString&

我对这种差异感到困惑。这是故意的吗?这有什么理由吗?QStringView如果一天结束时没有人消费它们,那么用例应该是什么?

c++ qstring qt

7
推荐指数
1
解决办法
4477
查看次数

contains(regexp) 可能是 QML 中的 Qstring/string

我在 QML 中有一个代码片段,它应该在 screen.text 中查找正则表达式“Calling”,如果找不到,它才会更改 screen.text。不幸的是,QML/QString文档中的文档不清楚.

  Button{
        id: call
        anchors.top: seven.bottom
        anchors.left: seven.left

        text: "Call"
        width: 40

        onClicked:{
            if(screen.text.toString().startsWith("Calling" , false))
                return;
            else
                screen.text = "Calling " + screen.text
        }
    }
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

file:///home/arnab/workspace/desktop/examples/cellphone.qml:127: TypeError: 表达式 'screen.text.toString().startsWith' [undefined] 的结果不是函数。

javascript qstring qt qml qt-quick

6
推荐指数
1
解决办法
9819
查看次数

QString删除最后一个字符

如何从/ home/admin/job0/Job中删除/ Job

QString name = "/home/admin/job0/Job"
Run Code Online (Sandbox Code Playgroud)

我想在"/"之后删除最后一个字符串

qstring qt

6
推荐指数
3
解决办法
1万
查看次数