QT学习笔记----解决QT无法显示汉字问题

[cpp]  view plain  copy
 print ?
  1. ui->label->setText(QString::fromUtf8("按钮1被按下!"));  

方法一:

1.下载文泉驿正黑字体qpf字体库

在http://download.csdn.net/source/3528609可以找到免费下载


2.把下载好的字体库解压后的qpf文件放入lib/fonts中(qtX86和arm版本以及移植的文件系统中都放入此子体)
编译运行的时候:在qtcreator中在Run Settings——〉Edit run configuration:右侧单击Show Details按钮,在打开的下拉列表中Arguments:文本框中添加参数“-qws -font wenquanyi”。


或者在终端中运行:例如:./hello -qws -font wenquanyi
这样就可以显示中文了

如果不想输入后面的参数可以把lib/fonts中的其他字体全部删除,只保留泉驿正黑字体的qpf字体库。这样只需要运行./hello-qws 即可 不过这样以来就用不了其他字体了。

方法二:

主函数下添加:

[cpp]  view plain  copy
 print ?
  1. #include <QtGui/QApplication>  
  2. #include "mainwindow.h"  
  3. #include "QTextCodec"  
  4. int main(int argc, char *argv[])  
  5. {  
  6.     QApplication a(argc, argv);  
  7.     MainWindow w;  
  8.     w.show();  
  9.   
  10.     // 以下部分解决中文乱码  
  11.         QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));  
  12.         QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));  
  13.         QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));  
  14.     // 以上部分解决中文乱码  
  15.   
  16.     return a.exec();  
  17. }  


需要中文的地方:

[cpp]  view plain  copy
 print ?
  1. ui->label->setText(QString::fromUtf8("按钮1被按下!"));  

在arm中运行时:

[cpp]  view plain  copy
 print ?
  1. [root@Snail /]# ./snail/4_button  -qws -font unifont  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值