您的位置:首页 > 编程语言 > Qt开发

Qt控件中文乱码的解决办法

2013-11-04 21:23 726 查看
最近写了个Qt程序,在自己的电脑下运行没问题,可是到了其他人的电脑上,Button,还有LineEdit上的中文就成了乱码,找了好久的资料终于解决了这个问题。

原来Qt对字符编码的支持是以dll的形式存在的所以解决这个问题的方法其实很简单,只要在自己可执行程序的同级目录(一般都是Debug目录)下建立一个plugins的文件夹,然后再到Qt的安装目录中找到 plugins文件夹中的codecs文件夹,然后把codecs文件夹整个复制到自己建的plugins文件夹中。然后再在main函数中写下以下代码:

QApplication::addLibraryPath("./plugins");//添加库,下面代码是设置字符编码
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForCString(QTextCodec::codecForName("GBK"));


注意,这段代码得放到QApplicaton构造对象之后,界面类构造对象之前。如:

QApplication app(argc,argv);
//此处插入代码
QMywidger widget;
widget.show();


在编译器中直接执行程序可能自己定义的控件都会乱码,但是只要在输出目录下直接点击exe程序,就会使正常的显示中文。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: