KDE下Qt程序字体问题
弄了几天的问题,终于算是部分解决了。
问题是这样的,在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>