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

来源:互联网 发布:淘宝店卖什么比较火 编辑:程序博客网 时间:2024/06/10 08:47

最近写了个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程序,就会使正常的显示中文。


原创粉丝点击