Qt 中显示中文
2015-08-26 10:36
597 查看
这块网上找到很多文章,也是按照网上的做的,但是有很多不成功,这里把自己成功的总结下。在Qt中使用中文,按照网上的很多方法,Ubuntu中显示正常,但是移植到开发板上显示有问题,这里根据我的操作做个整理。显示中文主要是两点,一是编码,而是字体。关于编码网上查的资料各种说法都有,utf8 gbk gb2312的,我用的是utf8.开发板上必须也有对应的中文字体才能够显示中文,我这里在Ubuntu 12.04的安装目录中usr/share/fonts/truetype/wqy目录下,将这个拷贝到开发板Qt库中的字体库中,注意要将Qt的字体路径加入环境变量QT_QWS_FONTDIR=/opt/qt-4.8.4/lib/fonts
最后,在主函数中加入代码即可:
在QT中显示中文
对项目中所有的tr()和QString都有效,不必考虑变量的域的问题 补充: 静态编译程序的时候还是会乱码,查了下资料,静态编译用以下方法
动态
from: http://blog.chinaunix.net/uid-14827902-id-2784504.html
最后,在主函数中加入代码即可:
#include "widget.h" #include <QApplication> #include <QTextCodec> int main(int argc, char *argv[]) { QApplication a(argc, argv); QTextCodec *codec = QTextCodec::codecForName("utf8"); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(codec); QTextCodec::setCodecForTr(codec); QFont font; font.setFamily(("wqy-microhei")); Widget w; w.setWindowFlags(Qt::FramelessWindowHint); w.show(); return a.exec(); }在使用的时候使用tr宏例如ui->statelabel->setText(tr("摄像头已经运行!"))这样在开发板上运行的时候就可以使用中文字体,而且不会有字体大小以及排版等方面的问题。FROM: http://www.cnblogs.com/emouse/archive/2013/05/03/3056431.html
在QT中显示中文
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030")); label->setText(tr("中文")); |
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb18030")); QString str = "中文"; label->setText(str); |
QTextCodec::setCodecForLocale(QTextCodec::codecForLocale()); QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale()); |
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312")); QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312")); QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312")); |
相关文章推荐
- QT的信号与槽机制介绍
- MFC和Qt优缺点
- qt优点
- 使用Qt(mingw)编译FreeType为 .a 静态库
- Qt 利用QSettings + config.ini 保存设置
- QT与Visual Studio 2010整合的例子
- Qt 学习之路 2(15):标准对话框 QMessageBox
- 关于QT 中 QDialog的几点,exec show(ZZ)
- Qt QpenGL 入门教程
- QT模态对话框
- opencv + Qt + codeblocks
- QT 对话框数据传递
- 自学QT之QT开发文件MD5计算器源码
- QT 设置QTableWidget背景为透明
- qt 指针 自动删除?
- QT在构造函数中退出程序
- QT构造函数中*parent
- QMainWindow + QtabWidget 实现 菜单栏 和 标签
- osg和QT结合出现的问题
- qt QDialog去掉标题栏