美文网首页
Qt5中文乱码

Qt5中文乱码

作者: downdemo | 来源:发表于2018-08-09 15:46 被阅读5次
    QMenu* menu = menuBar->addMenu(tr("测试")); // 乱码
    
    // 方案1:要求支持C++11
    QMenu* menu = menuBar->addMenu(tr(u8"测试"));
    
    // 方案2:不要求支持C++11
    #include "qstring.h"
    QMenu* menu = menuBar->addMenu(QString::fromLocal8Bit("测试"));
    
    • 将有中文的std::string转QString打印
    std::string s = "测试";
    qDebug() << QString(QString::fromLocal8Bit(s.c_str()));
    
    • 将有中文的QString转std::string
    QString qstr = tr(u8"测试");
    // QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
    QByteArray cdata = qstr.toLocal8Bit();
    std::string str = std::string(cdata);
    // 或者直接
    std::string str = qstr.toLocal8Bit();
    
    • std::string与QString的互转
    std::string str = qstr.toStdString();
    QString qstr = QString::fromStdString(str);
    
    • 若出现:不允许指针指向不完整的类型,则是因为没有引用对应的头文件

    相关文章

      网友评论

          本文标题:Qt5中文乱码

          本文链接:https://www.haomeiwen.com/subject/mxhcbftx.html