Qt5中文乱码问题

在用Qt画个象棋盘,每个棋子用了中文标示,部分代码如下

    QString getText()
    {
        switch (this->_type) {
        case JIANG:
            return "将";
        case CHE:
            return "车";
        case PAO:
            return "炮";
        case MA:
            return "马";
        case BING:
            return "兵";
        case XIANG:
            return "象";
        default:
            return "错误";
        }
    }

然后就崩溃了,中文乱码

然后Google各种搜索啊,大概两种办法

  • 更改这里为UFT-8(无效)
    这里写图片描述

  • 在main.cpp 里面加入一行代码 (无效)
    这里写图片描述

最后在一位群友的提醒下,使用了QStringLiteral,成功解决。

    switch(this->_type)
    {
    case CHE:       
        return  QStringLiteral("车");
    case MA:
        return QStringLiteral("马");
    case PAO:
        return QStringLiteral("炮");
    case BING:
        return QStringLiteral("兵");
    case JIANG:
        return QStringLiteral("将");
    case SHI:
        return QStringLiteral("士");
    case XIANG:
        return QStringLiteral("相");
    }
    return QStringLiteral("错误");

附图一张
这里写图片描述

PS:期间还更改系统语言等等,各种尝试,差点就重装系统了。
环境:Qt5.7 + MSVC14.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值