qq_20203153 2015-05-20 07:46 采纳率: 0%
浏览 3525

QT中文输入与显示的问题

我是windows系统。我用的是vs2012编写qt程序,我已经向vs中添加了qt类库。现在我遇到了中文输入和显示的问题。我一向窗口部件Qlable或Qlineedit显示中文就出现乱码,我在网上百度的小样都运行不了,说是我没有定义setCodecForTr函数,但哪个函数怎么定义啊,我以为是头文件中自动包含了定义和实现呢。
#include "mywindow.h"
#include
#include

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

QLabel hello(QObject::tr("你好"));

hello.setWindowTitle(QObject::tr("终于搞定中文"));

hello.show();

mywindow w;
w.show();
return a.exec();
}

  • 写回答

4条回答

  • donwmufromdying 2015-05-20 08:17
    关注

    这个问题很多人回答过了,你搜一下? Qt5.X版本已经取消了QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));,而且也不推荐这种
    方法。你的项目源码编码应该默认是UTF-8的,这样,你在源码里写的汉字是UTF-8的,你的源码文件或许还会在编译的时候报错误。简单的办法是
    删掉QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));这行
    QLabel hello(QObject::tr("你好")); 这行改成:QLabel hello(QObject::tr("\344\275\240\345\245\275"));
    hello.setWindowTitle(QObject::tr("终于搞定中文"));这行改成hello.setWindowTitle(QObject::tr("\347\273\210\344\272\216\346\220\236\345\256\232\344\270\255\346\226\207"));

    评论

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧