Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2164900
  • 博文数量: 374
  • 博客积分: 7276
  • 博客等级: 少将
  • 技术积分: 5669
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-06 16:35
文章分类

全部博文(374)

文章存档

2013年(23)

2012年(153)

2011年(198)

分类: LINUX

2011-11-25 09:53:09

编译完成qt以后,发现qt的字体太小了

原因是qt的dpi计算错误,这样的情况会导致qt在不同的平台上大小不一

解决的方法就是设置好qt的dpi,

qt是根据显示器的物理长度或者宽度于分辨率的关系来计算dpi的, 所以我们设置export QWS_DISPLAY="LinuxFB:mmWidth95:0" export QWS_SIZE="480x272" 这样qt在所有的平台上显示的字体都一样大了 就好了,

还有其他的选项,可以参考


这个是字体的问题。
1,下载文泉驿正黑字体qpf字体库
在可以找到下载
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 即可 不过这样以来就用不了其他字体了。

提示:在终端中运行程序时其后加上& 就不会独占终端了,可以在终端运行多个程序
如:./hello &


这个好用


引用 4 楼 killua_hzl 的回复:
qApp->setDefaultCodec( QTextCodec::codecForName("utf8") );
或者用QTranslator看看吧,当然翻译文件要做

我当时移植一直是用英文的,没什么注意


qt4.5以后就没这个函数了,可以用下面的方法:

  QApplication app(argc, argv);
  QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
  ....
app.exec();

然后在需要输出中文的地方用tr()把字符包含起来,如:lineEdit->setText(tr("中文"));

在qt默认的字库中,只有unifont_160_50.qpf支持中文,你把这个文件拷到运行系统的字库目录下,
启动程序加一下参数:
./yourApp -font unifont
阅读(8740) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~