因为不断现代化的Linux系统再也无法调用infinality渲染包中的/etc/profile.d/infinality-settings.sh脚本,所以写在这个脚本里的系统字体全局参数已失效:
Xft.antialias: 1
Xft.autohint: 0
Xft.dpi: 96
Xft.hinting: 1
Xft.hintstyle: hintfull
Xft.lcdfilter: lcddefault
Xft.rgba: rgb
这就造成QT5程序的字体在一些已经开启hintfull的桌面环境里仍渲染的很渣,默认情况下的(微软雅黑)字体很是模糊难看,如下图所示:
解决方法之一:通过qt5ct来更新字体配置,按照下图的方法操作,勾选或不勾选相应的项目
解决方法之二:直接新建一个~/.config/fontconfig/fonts.conf文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
<edit name="hintstyle" mode="assign">
<const>hintfull</const>
</edit>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
<edit name="lcdfilter" mode="assign">
<const>lcddefault</const>
</edit>
<edit name="dpi" mode="assign">
<double>96</double>
</edit>
</match>
</fontconfig>
解决方法之三:为了方便所有用户全局使用,在/etc/fonts目录里的某个关键.conf文件(比如我的字体渲染包里的/etc/fonts/infinality/infinality.conf文件)里写入以下内容:
<match target="font">
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
<edit name="hintstyle" mode="assign">
<const>hintfull</const>
</edit>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
<edit name="lcdfilter" mode="assign">
<const>lcddefault</const>
</edit>
<edit name="dpi" mode="assign">
<double>96</double>
</edit>
</match>
一条命令查看Linux发行版的真实用户份额:wget -qO - linux.top/o|sh
河南省焦作市某Linux用户觉得这篇文章很有帮助。
江西省某Linux用户觉得这篇文章很有帮助。
大神,对于QT编写的wps office的文档显示字体发虚怎么处理?在Qt4ct和QT5ct里设置均没有效果,还是发虚。
没办法。wps的字体渲染机制复杂且闭源,难搞。建议弃坑。
围观大神~~~
怎么了?