Qt控件中文乱码的解决办法
2013-11-04 21:23
726 查看
最近写了个Qt程序,在自己的电脑下运行没问题,可是到了其他人的电脑上,Button,还有LineEdit上的中文就成了乱码,找了好久的资料终于解决了这个问题。
原来Qt对字符编码的支持是以dll的形式存在的所以解决这个问题的方法其实很简单,只要在自己可执行程序的同级目录(一般都是Debug目录)下建立一个plugins的文件夹,然后再到Qt的安装目录中找到 plugins文件夹中的codecs文件夹,然后把codecs文件夹整个复制到自己建的plugins文件夹中。然后再在main函数中写下以下代码:
注意,这段代码得放到QApplicaton构造对象之后,界面类构造对象之前。如:
在编译器中直接执行程序可能自己定义的控件都会乱码,但是只要在输出目录下直接点击exe程序,就会使正常的显示中文。
原来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程序,就会使正常的显示中文。
相关文章推荐
- Qt中 int ,float ,double转换为QString
- 初识Qt,创建简单的widget!
- 散分了 关于QTreeView的拖拽问题
- QT控件操作
- QT中文乱码
- 关于QT中moc帮助默认connect
- MFC与QT区别
- Qt模块化笔记之sql——事务处理的实现
- VS2010下QT配置
- Qt事件处理器和事件过滤器实例
- Qt中事件处理的方法
- 循环坐标下降(CCD)算法中对骨骼动画中膝盖等关节的特殊处理
- Qt 内存回收机制
- qt 事件机制
- qt-creator2.8.1 在 64bits笔记本上的环境搭建 桌面环境和 arm开发环境
- qt文件读写
- Qt随笔之Qt线程同步
- QT5.1.1中MinGW4.8的环境变量配置
- QT 开发工具下载路径
- qt中driver not loaded