Qt在Linux环境下字体模糊的解决方法
创始人
2024-08-01 01:30:36
0

QtLinux环境下字体模糊,我一直以为是不兼容的问题,要想知道该怎样解决这个问题,那么看本文的内容吧。

这两天一直在用Qt实现一个跨平台的软件。软件之前在Windows上编写的,后来放到里Ubuntu 10.10下编译。程序运行时遇到一个很棘手的问题,界面文本非常模糊。后来在网上查阅了好几天的资料,经历了无数次实验,最终解决了这一问题。下面以一个Demo程序来重现这一问题。

本文中的编译平台为:Ubuntu 10.10 x86版, g++ 4.4.5, Qt 4.7.3自己编译的

首先看看我的Demo程序字体模糊时的截图:

Qt在Linux环境下字体模糊的解决方法

一个软件界面的文本要是这样子,根本无法接受。

有人说要通过qtconfig来修改默认字体,可是我修改了好多次,都不成功,还是这样。

最后找到原因,首先是我把QtLinux中默认的字体“AR PL UKai CN”设置死了,如下图所示:

Qt在Linux环境下字体模糊的解决方法

为什么说设置死了呢?看上图右下角,“字体族”一行,该行末尾后的小箭头为红色,这表示该属性当前不是默认值,如果是默认值,这个小箭头应该为灰色显示。要解决字体模糊的问题,第一步应该将界面上所有设置死的字体族改回默认值,只需要选中要更改字体族的部件,在右侧到属性列表中点击红色到小箭头,使其变灰,这样就可以设置为默认值了。

第二步,在终端中输入“qtconfig”(不含引号),打开qt配置程序,如下图所示:

Qt在Linux环境下字体模糊的解决方法

在右侧第二个选项卡“字体”中我们可以看到,字体族当前为“ AR PL UKai CN ”,在下方的“样例文本”中我们也可以看到,这几个字同样非常模糊,我们点击字体族右边到上下箭头,弹出字体族选择列表,如下图所示:

Qt在Linux环境下字体模糊的解决方法

因为我们的目标不仅要显示英文,还要显示中文,因此我们选择“Song Ti”(宋体)这一项,再修改点大小为11,此时“样例文本”就清晰多了。如下图所示:

Qt在Linux环境下字体模糊的解决方法

设置完成之后,点击“文件”菜单,选择“保存”来保存当前配置,如下图所示:

Qt在Linux环境下字体模糊的解决方法

此时应该能立即看到更改后的效果,如下图所示:

Qt在Linux环境下字体模糊的解决方法

Qt配置程序界面的字体已经变得清晰多了,那么我们的程序是不是也变化了呢?来看一下,如下图所示:

Qt在Linux环境下字体模糊的解决方法

从上图我们可以看到,自己写的程序界面中字体也非常清晰了,为了验证中文兼容性,我还在Text Edit部件中输入了若干汉字,同样没有问题,字体依然清晰。整个过程中,除了第一步修改默认字体后重新编译了本程序,在对Qt配置进行修改后并没有也没必要重新编译程序。程序界面的字体就发生了变化。

值得注意的是,qtconfig工具只在Linux下存在,Mac版的Qt库中是否有这个工具我还没有验证,但Windows中肯定没有。另外,在qtconfig工具中我设置的字体族为“Song Ti”,该字体在“点大小”小于11号时就又不清晰了。需要更小字体的朋友可以设置字体族为“Wenquanyi Bitmap Song”(基于位图的文泉驿宋体),该字体设置为小字号时仍可显示得很清晰。

小结:QtLinux环境下字体模糊的解决方法,不知道有么有帮你解决问题,希望本文对你有帮助。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...