在用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