标签: qstring

在Qt中将WCHAR转换为QString

在Qt中将WCHAR转换为QString.请帮我实现它以完成此转换.

c++ qstring qt wchar

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

当你对检索到的值的表达式进行分支时,是否存在像`if(Value*value = getValue())`这样的习惯用法?

我经常使用普通的

if (Value * value = getValue())
{
    // do something with value
}
else
{
    // handle lack of value
}
Run Code Online (Sandbox Code Playgroud)

现在,我也经常这样做

QString error = someFunctionReturningAnErrorString(arg);
if (!error.isEmpty())
{
     // handle the error
}
// empty error means: no error
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但我希望error变量的范围是if-block.那有一个很好的习语吗?显然,我可以将整个部分包装在另一个块中.

显然,这不起作用:

if(QString error = someFunctionReturningAnErrorString(arg), !error.isEmpty())
{
    // handle the error
}
// empty error means: no error
Run Code Online (Sandbox Code Playgroud)

不幸的是(但有充分的理由)QString无法转换为bool,所以这也不起作用:

if(QString error = someFunctionReturningAnErrorString(arg))
{
    // handle the error
}
// empty error …
Run Code Online (Sandbox Code Playgroud)

c++ qstring qt

13
推荐指数
2
解决办法
549
查看次数

QString :: number()'f'格式,不带尾随零

我想将数字转换为QString3位有效数字.

QString::number(myNumber,'f',3);
Run Code Online (Sandbox Code Playgroud)

做的工作但仍然落后零.没有它们如何使用它.

我也试过了'g',哪些不应该留下那些零:

QString::number(myNumber,'g',3);
Run Code Online (Sandbox Code Playgroud)

但是例如472.76被转换为473.这让我感到惊讶.为什么'g'选择这样呢?

但是我对'f'格式很感兴趣.所以主要的问题是如何在'f'没有尾随零的情况下完成它?

输入 - >所需的输出

472.76 - > 472.76

0.0766861 - > 0.077

180.00001 - > 180

c++ qstring qt

12
推荐指数
2
解决办法
8717
查看次数

解决QT的QString arg()模糊性问题

QString::arg()当字符串包含位置标记之后的数字时,会出现问题.从QString::arg()功能描述中不清楚在这种替换的情况下会发生什么:

QString("String for replacement %1234").arg("blah");
Run Code Online (Sandbox Code Playgroud)

这会导致"String for replacement blah234""String for replacement blah34"

我查看了QT的源代码来回答这个问题.看起来寻找位置标记的算法似乎是"贪婪的",并且在上面的例子中它将采用两个数字.

以下是QString::arg()(QT 4.8.4)中使用的QT函数的来源:

static ArgEscapeData findArgEscapes(const QString &s)
{
const QChar *uc_begin = s.unicode();
const QChar *uc_end = uc_begin + s.length();

ArgEscapeData d;

d.min_escape = INT_MAX;
d.occurrences = 0;
d.escape_len = 0;
d.locale_occurrences = 0;

const QChar *c = uc_begin;
while (c != uc_end) {
    while (c != uc_end && c->unicode() != '%')
        ++c;

    if (c == uc_end)
        break; …
Run Code Online (Sandbox Code Playgroud)

qstring qt ambiguity

12
推荐指数
1
解决办法
2406
查看次数

使用QPainter绘制富文本

有没有办法绘制有下标的固定文本.我的目标是:"K_max = K_2.3"

QString equation="K_max=K_2 . 3";
painter.drawText( QRect(x, y , width, y+height), Qt::AlignLeft|Qt::AlignVCenter, equation);
Run Code Online (Sandbox Code Playgroud)

我也尝试使用html标签格式化文本,但它没有帮助(标签打印了文本):

QString equation="<p>K<sub>max</sub></p>=<p>K<sub>2</sub></p>.3"
Run Code Online (Sandbox Code Playgroud)

qstring qt qpainter

12
推荐指数
2
解决办法
7194
查看次数

用整数连接两个QStrings

我想在C++中使用Qt做这样的事情:

int i = 5;
QString directory = ":/karim/pic" + i + ".jpg";
Run Code Online (Sandbox Code Playgroud)

在哪里+意味着我想连接字符串和整数(也就是说,directory应该是:/karim/pic5.jpg).我怎样才能做到这一点?

c++ qstring qt

11
推荐指数
2
解决办法
3万
查看次数

将数字格式化为特定的QString格式

我有一个关于将十进制数格式化为某种QString格式的问题.基本上,我的程序中有一个输入框,可以取任何值.我希望它将此框中的值转换为格式"+05.30"(基于值).该值将限制为+/- 99.99.

一些例子包括:

.2 - > +00.02

-1.5 - > -01.50

9.9 - > +09.90

我正在考虑使用这样的转换器,但它会有一些明显的问题(没有前导0,没有前导+符号).

QString temp = QString::number(ui.m_txtPreX1->text().toDouble(), 'f', 2);
Run Code Online (Sandbox Code Playgroud)

这个问题有一些相似之处,但并没有将前端和后端填充连接在一起.

使用零填充(前导零)将int转换为QString

有关如何解决这个问题的任何想法?非常感谢您的帮助!谢谢!

c++ qstring qt string-formatting

11
推荐指数
2
解决办法
5万
查看次数

如何在QString中检测到非ASCII字符?

我想检测用户是否在文件保存对话框中输入了非ASCII(否则错误地称为Unicode)字符(例如,り).当我使用Qt时,任何非ASCII字符都正确保存在QString中,但我无法弄清楚在将字符串转换为ASCII之前如何确定该字符串中的任何字符是否为非ASCII.上面的那个字符最终被写入文件系统り.

c++ qstring qt qchar qtcore

11
推荐指数
3
解决办法
3776
查看次数

QJSonArray进行QString转换

我有这两个变量,我想将数据转换为dataToString.

QJSonArray data;

Qstring dataToString;
Run Code Online (Sandbox Code Playgroud)

在数据中有一个巨大的json像:

{
    "properties": [
        {
            "version":"1",
            "finish":"0",
            "num":3,
            "running":false,
            "time":"00:20:00",
            "player1":"John",
            "player2":"",
            "player3": "Peter",
            "player4":"",
            "team1":"",
            "team2":"",
            "tournament":"",
            "lap":""
        }
    ],
    "game": [
        {
            "serve":true,
            "score":"32",
            "data":"0"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做 ?谢谢.

c++ qstring qt5

10
推荐指数
1
解决办法
5595
查看次数

如何使用GoogleTest框架打印QString?

我将GoogleTest(GTest)框架与Qt5应用程序结合使用.

每当使用QString参数进行测试失败时,框架会尝试打印所有涉及的值.但是,它无法自动处理外来类型(在这种情况下为Qt5的QString).

QString test = "Test";
ASSERT_EQ(test, "Value");
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如何让GoogleTest自动打印QStrings(=无需每次手动转换它们)?

qstring qt pretty-print googletest qt5

10
推荐指数
1
解决办法
995
查看次数