zoukankan      html  css  js  c++  java
  • Qt在Linux环境下应用程序字体模糊的解决方法(先改成使用默认字体,然后使用qtconfig配置)

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

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

    首先看看我的Demo程序文本模糊时的截图:

    字体非常模糊

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

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

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

    把界面的字体设置死了 

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

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

    打开Qt配置

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

    Qt配置中选择字体族

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

    Qt配置中选择“Song Ti”字体族

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

    保存对Qt默认字体的配置

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

    更改Qt配置后的效果

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

    更改Qt配置后,验证自己的程序是否也发生了改变

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

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

    http://blog.csdn.net/chaijunkun/article/details/6448295

  • 相关阅读:
    前缀和与差分
    可行!解决bitmap缩放失真问题
    Android 中的 File renameTo() 使用
    XMPP 中客户端断线及网络异常处理
    webview 离线缓存,html5游戏适用
    Mac os x下配置 Android ndk 开发环境
    从外企到国企的工作环境改变
    微软SQL Server数据库SQL语句导入导出大全,包括与其他数据库和文件的数据的导入导出
    人生第一职业:我当了人民教师
    JOIN 分为内连接,外连接(左外连接,右外连接,全外连接)
  • 原文地址:https://www.cnblogs.com/findumars/p/5589542.html
Copyright © 2011-2022 走看看