标签: qstring

带有QString类型的C++中的switch/case语句

我想在我的程序中使用switch-case但编译器会生成错误.我如何使用该switch语句QString

编译器给我这个错误:

switch expression of type 'QString' is illegal
Run Code Online (Sandbox Code Playgroud)

我的代码如下:

bool isStopWord( QString word )
{
bool flag = false ;

switch( word )
{
case "the":
    flag = true ;
    break ;
case "at" :
    flag = true ;
    break ;
case "in" :
    flag = true ;
    break ;
case "your":
    flag = true ;
    break ;
case "near":
    flag = true ;
    break ;
case "all":
    flag = true ;
    break ;
case …
Run Code Online (Sandbox Code Playgroud)

c++ qstring qt qt4 switch-statement

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

如何将QJsonObject转换为QString

我有一个QJsonObject数据,并希望转换为QString.我怎样才能做到这一点?在Qt中搜索过帮助,它只能将QJsonObject转换为QVariantMap ...

提前致谢.

qstring qt qjsonobject

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

如何在QString :: arg()的参数中处理"%1"?

所有人都喜欢

QString("Put something here %1 and here %2")
    .arg(replacement1)
    .arg(replacement2);
Run Code Online (Sandbox Code Playgroud)

但是只要你有最微小的机会replacement1实际包含%1甚至是%2任何地方,事情就会变得痒痒.然后,第二个QString::arg()将仅替换重新引入%1或两个%2事件.无论如何,你不会得到"%1"你可能想要的文字.

是否有任何标准技巧可以克服这个问题?

如果你需要一个例子来玩,请拿这个

#include <QCoreApplication>
#include <QDebug>

int main()
{
    qDebug() << QString("%1-%2").arg("%1").arg("foo");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这将输出

"foo-%2"
Run Code Online (Sandbox Code Playgroud)

代替

"%1-foo"
Run Code Online (Sandbox Code Playgroud)

可能是预期的(不是).

    qDebug() << QString("%1-%2").arg("%2").arg("foo");
Run Code Online (Sandbox Code Playgroud)

"foo-foo"
Run Code Online (Sandbox Code Playgroud)

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

"%3-foo"
Run Code Online (Sandbox Code Playgroud)

qstring qt placeholder string-formatting

24
推荐指数
2
解决办法
6万
查看次数

如何使用QString指定unicode字符?

如何使用QString通过代码(例如"4FF0")指定unicode字符?我试过QString s("\u4FF0");但它只输出一个问号.知道怎么做吗?

编辑:

它的工作原理是这样,但是有更直接的方法吗?

std::wstring str = L"\u4FF07";
QString s = QString::fromStdWString(str));
Run Code Online (Sandbox Code Playgroud)

unicode qstring qt

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

删除字符串中的空格

我有一个lots\t of\nwhitespace\r\n 我简化的字符串 ,但我仍然需要摆脱字符串中的其他空格.

QString str = "  lots\t of\nwhitespace\r\n ";
str = str.simplified();
Run Code Online (Sandbox Code Playgroud)

我可以erase_all(str, " ");在提升中做到这一点,但我想留在qt.

c++ qstring qt

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

Qt C++ QString到QByteArray转换

我创建了一个加密/解密程序,加密时我将加密的QByteArray存储在一个文本文件中.

在尝试解密时,我检索它然后将其放入解密方法,问题是我需要一种方法将其转换为QByteArray 而不更改格式,否则它将无法正确解密.我的意思是,如果文件给我一个1234的加密值,我将1234.toLatin1()它转换为QByteArray,它改变了值,解密不起作用.有什么建议?

我的代码:

QFile file(filename);
    QString encrypted;
    QString content;

    if (file.open(QIODevice::ReadOnly)) {
        QTextStream stream( &file );
        content = stream.readAll();
    }

    encrypted = content.replace("\n", "");

    qDebug() << encrypted; // Returns correct encrypted value

    QByteArray a;
    a += encrypted;

    qDebug() << "2 " + a; // Returns different value than previous qDebug()

    QByteArray decrypted = crypto.Decrypt(a, key);
    return decrypted;
Run Code Online (Sandbox Code Playgroud)

c++ qstring qt qbytearray

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

QML中QString :: arg()的等价性是什么?

我想知道如何在QML中使用一些字符串来填充一些参数?在Qt中有这样的事情:

QString str("%1 %2");
str = str.arg("Number").arg(12);//str = "Number 12"
Run Code Online (Sandbox Code Playgroud)

qstring qt qml

19
推荐指数
2
解决办法
9154
查看次数

将QProcess输出读取为字符串

我有一个像这样使用QProcess的代码.

int main(int argc, char *argv[])
{
    int status=0;
    QProcess pingProcess;
    QString ba;
    QString exec = "snmpget";
    QStringList params;
     params << "-v" << "2c" << "-c" << "public" << "10.18.32.52" <<    ".1.3.6.1.4.1.30966.1.2.1.1.1.5.10";
    status=pingProcess.execute(exec, params);
    pingProcess.close();
}
Run Code Online (Sandbox Code Playgroud)

这输出以下内容.

SNMPv2-SMI::enterprises.30966.1.2.1.1.1.5.10 = STRING: "0.1"
Run Code Online (Sandbox Code Playgroud)

我想把这个输出作为字符串.我搜索了这个,我找不到解决方案.提前致谢.

c++ qstring qt stdout qprocess

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

QString拆分

我有这些网址字符串

文件:///home/we/Pictures/neededWord/3193_n.jpg

文件:///home/smes/Pictures/neededWord/jds_22.png

文件:///home/seede/kkske/Pictures/neededWord/3193_n.jpg

我想从每个中提取"neededWord".从它们看来,图像的名称总是在"neededWord"之后,字符串中的变化部分在"neededWord"之前.我想到的方法是使用右边的"/"分隔符拆分字符串,并在结果QstringList中取第二个元素.那么如何从右分裂,还是有更好的方法呢?

qstring qt split qt4

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

将std :: wstring转换为QString的最佳方法

我目前正在开发一个更大的项目,其中"逻辑"在标准C++中实现,所有字符串都在处理,std::wstringUI部分使用Qt实现,因此必然QString(奖励问题:这是真的吗?).

连接这两个世界的最佳方式是什么?

我知道我可以用类似的东西

std::wstring wideString;
QString qtString = QString::fromStdWString(wideString);
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更好的方式,涉及更少的打字.一个用户定义的操作员出现在我的脑海中,但我没有足够的经验来解决这个问题.

如果有人能指出我正确的方向,我会很高兴的.

c++ qstring qt wstring

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