zoukankan      html  css  js  c++  java
  • 在VS中编写Qt5涉及到的一点字符串问题

    在VS中开发Qt5程序似乎成了我的一种习惯,因为觉得VS简直不能再溜了,不愧是“宇宙第一IDE”。

    所以在开发中难免会遇到中文显示乱码的问题,网上找到的很多方法都是类似于下面这样的:

    QStringLiteral("中文")

    或者这样的:

    #pragma execution_character_set("utf-8")

    还有这样的:

    QTextCodec * BianMa = QTextCodec::codecForName ( "GBK" ); 
    QMessageBox::information(this, "提示", BianMa->toUnicode("中文显示!"));

    还有这样的:

    QString::fromWCharArray(L"中文字符");

    反正,我一般是这样的:

    QString::fromlocal8Bit("汉字");

    这么多方法里面,如果是在VS中开发,那就用下面这两种:

    QString::fromWCharArray(L"中文字符");
    QString::fromlocal8Bit("汉字");

    如果,很要命的想在VS和Qt creator中同时开发,那就用:

    QString::fromlocal8Bit("汉字");

    然后,还涉及到string转QString,就是

    QString::fromStdString(s);

    但是,如果你要QString转std::string的话,那可以直接用它:

    QString::fromStdString(string);

    但是,有时候很要命,会有汉字,所以就用它会比较保险:

    //std::string to QString
    QString::fromlocal8Bit(string.data())
    
    //QString to std::string
    QString str = "中文";
    str.toLocal8Bit().data()

    QString还提供了特别好用的数字与字符互转:

    QString::number(数字);
    
    QString str ="2";
    str.toInt();//其他类型类似

    辛苦最怜天上月,一昔如环,昔昔都成玦。

    若似月轮终皎洁,不辞冰雪为卿热。

    无那尘缘容易绝燕子依然软踏帘钩说。

    唱罢秋坟愁未歇春丛认取双栖蝶。

      -- 纳兰性德 《蝶恋花·辛苦最怜天上月》

    上善若水,为而不争。
  • 相关阅读:
    可扩展性的四个维度
    系统的可伸缩性
    Spring.factories扩展机制
    Java扩展方法之SPI
    2019第16周日
    影响圈和关注圈
    看张溪梦讲座的一点想法:制造数据反馈
    何为重构
    贾扬清:我对人工智能方向的一点浅见
    python类和实例以及__call__/__del__
  • 原文地址:https://www.cnblogs.com/Bearoom/p/11721782.html
Copyright © 2011-2022 走看看