qt5版本的中文显示问题
2017-07-10 14:03
211 查看
作者使用的qt版本为当前最新的5.9.1。
网上有许多相关问题的解答,但大多数并未区别qt4与qt5。
网上的解决方法:
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF8"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF8"));
以上方法仅适用于qt4版本,在qt5版本更新后,setCodecForTr和setCodecForCStrings两个函数已经被删除,编译时会报错。
qt5版本中正确解决中文乱码的方法如下:
1对话框类型的中文乱码解决方法如下:
2非对话框类型的中文乱码解决方法如下:
网上有许多相关问题的解答,但大多数并未区别qt4与qt5。
网上的解决方法:
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF8"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF8"));
以上方法仅适用于qt4版本,在qt5版本更新后,setCodecForTr和setCodecForCStrings两个函数已经被删除,编译时会报错。
qt5版本中正确解决中文乱码的方法如下:
1对话框类型的中文乱码解决方法如下:
QTextCodec * BianMa = QTextCodec::codecForName ( "GBK" );
//QMessageBox::information(this, "提示", BianMa->toUnicode("中文显示!"));
if(a.isEmpty()){
QMessageBox::information(this,BianMa->toUnicode("请输入用户名"),BianMa->toUnicode("用户名不能为空"),QMessageBox::Ok);
}
if(b.isEmpty()){
QMessageBox::information(this,BianMa->toUnicode("请输入密码"),BianMa->toUnicode("密码不能为空"),QMessageBox::Ok);
}
if(c.isEmpty()){
QMessageBox::information(this,BianMa->toUnicode("请输入服务器地址"),BianMa->toUnicode("服务器地址不能为空"),QMessageBox::Ok);
}
if(d.isEmpty()){
QMessageBox::information(this,BianMa->toUnicode("请输入端口号"),BianMa->toUnicode("端口号不能为空"),QMessageBox::Ok);
}
2非对话框类型的中文乱码解决方法如下:
userName_label = new QLabel(QString::fromLocal8Bit("用户名:"),this);
passWord_label = new QLabel(QStringLiteral("密码:"),this);
以上为两种解决方法,第一种适用于常量和变量,第二种仅适用于常量。
以上为qt5.9中解决中文乱码的解决方法,欢迎大佬发表自己的看法。
相关文章推荐
- Qt5中文显示问题
- Git进行版本控制添加文件时,中文文件名乱码显示数字问题
- RadioButton在低版本中文字居中显示的问题
- Qt4、Qt5等Qt版本解决中文乱码问题
- 【iReport学习一】iReport 3.7版本中,PDF中文显示问题解决方法
- cmder中文显示相关问题解决方案(1.3以上版本)
- Qt5中文显示乱码问题
- avalon.js低版本中文数据显示问题
- QT5常见问题二:程序显示中文乱码以及Linguist打开翻译文件乱码,该如何解决?
- Qt5 QML程序Release版本发布程序无法显示的问题解决过程。
- [置顶] python3.x版本的图像输出的结点中文显示问题
- 怎么解决Qt5中文显示乱码问题
- 解决高版本 phpMyAdmin 中文显示乱码问题
- RadioButton在低版本中文字居中显示的问题
- 解决高版本 phpMyAdmin 中文显示乱码问题
- Qt5中文无法显示问题
- 国外Asp.Net空间中SqlServer数据库显示非中文乱码的问题
- jbuilderX的中文显示和光标问题
- JBuilderX的中文显示问题
- 国外Asp.Net空间中SqlServer数据库显示非中文乱码的问题