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

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 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择
  • ¥15 这款软件是什么?需要能满足我的需求
  • ¥15 SpringSecurityOauth2登陆前后request不一致
  • ¥15 禅道二次开发编辑版本,上传不了发行包