这肯定还是字体的问题。
当然是字体的设置,而不是有没有字体。
Linux 对于字体边角的 AA (Anti-aliasing)算法和 Windows 下面的不同。而且这几年一直在改,如果可以最好是看看你的 ubuntu 到底是什么版本的,能升级先升级到最新。而且不要自己另外装,要用系统自带的软件。
因为算法不同,某些 Windows 下面效果好的字体,在 Linux 下面显示会很渣。QT 的字体设置和字体显示是自己渲染的,和 ubuntu 的默认图形界面所用的 GTK 是两套设置。虽然他们都有用 FontConfig 和 FreeType 。
还有就是有些字体因为内嵌了点阵字体,使用点阵字体是不能 AA 的。有些时候设置里面也会设置某个字号设置范围内,也不做 AA 处理。
这些都会影响字体的效果。
而且有些字体,开了 AA 也很不好看的。
这个问题最好的办法是做一个虚拟字体(比如那个 Sans ),这个虚拟字体按照效果,集合多种字体,比如英文用 Verdana ,中文用雅黑。或者中文用文泉驿点阵再集合另一个宋体字库。系统的文字渲染程序会按照顺序提取字符信息来渲染,从而保证效果。不过前提是他们在同一个设置下面效果都没问题……
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 &
易百纳技术社区内容涵盖机器视觉、音频处理、机器连接、机器感知以及智能终端,是一个多方向的专业性社区,致力于为更多工程师答疑解惑,创造机遇!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)