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

移动开发
本文介绍是Qt在Linux环境下字体模糊的解决方法,Qt是一个跨平台的软件,为什么还会出现这种问题呢?那该怎样解决呢?本文将会为你讲解。

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环境下字体模糊的解决方法,不知道有么有帮你解决问题,希望本文对你有帮助。

责任编辑:zhaolei 来源: 互联网
相关推荐

2010-03-05 16:32:02

Ubuntu中文环境

2011-08-22 15:39:38

Linux

2011-07-04 10:09:19

Qt Creator BUG

2011-03-29 13:40:40

linuxcacti

2010-01-15 10:31:19

Linux编译

2010-08-19 09:29:26

hoverIE6

2009-10-28 08:31:02

Vsftpd服务器故障

2009-10-28 09:49:32

linux Vsftp

2011-04-25 15:14:38

LinuxQtOpenCV

2011-07-05 09:44:31

QT Mysql 乱码

2012-08-15 14:01:18

2011-06-28 16:56:41

Linux Qt creator

2011-09-15 16:23:51

ubuntujavaclipse

2016-11-16 09:25:15

WindowsWindow 8Windows 10

2011-03-18 18:47:34

QtMySQL

2009-08-27 10:28:04

2011-09-19 19:21:54

linux

2010-09-15 09:00:21

MeeGo TouchQT SDKMeeGo

2011-08-30 13:48:50

phpmyadmin

2013-04-10 15:30:42

点赞
收藏

51CTO技术栈公众号