编译完成qt以后,发现qt的字体太小了
原因是qt的dpi计算错误,这样的情况会导致qt在不同的平台上大小不一
解决的方法就是设置好qt的dpi,
qt是根据显示器的物理长度或者宽度于分辨率的关系来计算dpi的,
所以我们设置exportQWS_DISPLAY="LinuxFB:mmWidth95:0"
export QWS_SIZE="480x272"
这样qt在所有的平台上显示的字体都一样大了 就好了,
还有其他的选项,可以参考http://doc.qt.nokia.com/4.6/qt-embedded-displaymanagement.html
这个是字体的问题。
1,下载文泉驿正黑字体qpf字体库
在http://kenter1643.download.csdn.net/可以找到下载
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