KEEP K.I.S.S.

tk's blog

KDE下Qt程序字体问题

tk posted @ Sep 20, 2011 03:02:45 PM in 业余 with tags font kde Qt Microsoft Yahei , 3837 阅读

 

弄了几天的问题,终于算是部分解决了。

问题是这样的,在KDE下,并不是所有程序的字体都和KDE设置的是一样的,就连基于Qt的程序也是如此。之前下载了 Qt SDK 1.1.3,自带的Qt Creator 的字体看上去太蛋疼了,模糊,又不好看,怎么设置也没办法弄。

后来在网上找了很多方法,qtconfig 也试过,没有效果,有人质疑 Qt 程序的字体设置和 KDE 默认的冲突,但是也没有找到解决方法。

没办法,最后找到了一个设置微软雅黑字体的办法来试试,结果还是不错的。

在用户目录下有个字体设置文件, .fonts.conf ,就是修改这个文件来修改全局字体。如下所附带的就是一个用于微软雅黑显示所用的代码。其实不知道还有没有更好的办法,因为这样设置后Chrome里的字体也全部微软雅黑了。。。。。。 等学会了 这个文件的原理就能找到好方法了吧。。

 

================= 9/22 更新 ==============

新配置文件,完全去除windows宋体,建议不使用该字体。新配置文件为 /etc/fonts/local.conf 没有可以新建。

 

<?xml version='1.0'?>
<fontconfig>
 <!--
# 设置 serif 衬线字体的读取顺序
-->
 <alias>
  <family>serif</family>
  <prefer>
        <family>Bitstream Vera Serif</family>
   <family>Microsoft YaHei</family>
  </prefer>
 </alias>
 <!--
# 设置 sans-serif 无衬线字体的读取顺序
-->
 <alias>
  <family>sans-serif</family>
  <prefer>
        <family>Bitstream Vera Sans</family>
   <family>Microsoft YaHei</family>
  </prefer>
 </alias>
 <!--
# 设置 monospace 等宽字体的读取顺序
-->
 <alias>
  <family>monospace</family>
  <prefer>
          <family>Bitstream Vera Sans Mono</family>
      <family>Microsoft YaHei</family>
  </prefer>
 </alias>
 <!--
# 全局字体的设置
-->
 <match target="font">
  <test compare="contains" name="family">
   <string>Tahoma</string>
   <string>verdana</string>
   <string>Arial</string>
   <string>Times New Roman</string>
  </test>
  <edit name="globaladvance">
   <bool>false</bool>
  </edit>
  <edit name="spacing">
   <int>0</int>
  </edit>
  <edit mode="assign" name="hinting">
   <bool>true</bool>
  </edit>
  <edit mode="assign" name="autohint">
   <bool>false</bool>
  </edit>
  <edit mode="assign" name="antialias">
   <bool>true</bool>
  </edit>
  <edit mode="assign" name="hintstyle">
   <const>hintfull</const>
  </edit>
 </match>
 <!--
# 单独设置微软雅黑字体的显示
-->
 <match target="font">
<test name="family" compare="contains">
<string>Microsoft YaHei</string>
<string>微软雅黑</string>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<edit name="hintstyle" mode="assign" >
<const>hintfull</const>
</edit>
</match>
<!--
# 单独设置 Bitstream Vera Sans 字体的显示
-->
<match target="font">
<test name="family" compare="contains">
<string>Bitstream Vera Sans</string>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<edit name="hintstyle" mode="assign" >
<const>hintslight</const>
</edit>
</match>
<!--
# 单独设置 Bitstream Vera Serif 字体的显示
-->
<match target="font">
<test name="family" compare="contains">
<string>Bitstream Vera Serif</string>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<edit name="hintstyle" mode="assign" >
<const>hintslight</const>
</edit>
</match>

<!--
# 单独设置 Bitstream Vera Sans Mono 字体的显示
-->
<match target="font">
<test name="family" compare="contains">
<string>Bitstream Vera Sans Mono</string>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<edit name="hintstyle" mode="assign" >
<const>hintslight</const>
</edit>
</match>
</fontconfig>

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter