qml字体模糊,其他设备有异样,解决方案

前言

之前写过一篇博客是关于移动端字体方便的qt for android中文字体显示异常解决方案,这个方案只能解决字体乱码的问题,但是不能解决字体模糊的问题,
所以,qml字体模糊一直是一个心病,qwidget就不会模糊,也一直不知道为什么,偶尔间,今天看到一篇博文写了这个相关的话题,现记录如下:


正文

首先是关于这个属性:renderType,需要设置为Text.NativeRendering,这样字体则不会出现虚影和模糊。

警告一下:该属性不能使用于有缩放和拿捏情况下的设置,否则字体就会崩溃稀扒乱!!!

原文如下:

现在,从引入QML 2以来,字体的渲染方式已经改变了,默认情况下,字体提示被忽略。因此,如果您通过动画化像素大小来缩放字体,您将获得一个很好的平滑缩放效果,但是由于它们没有被暗示,所以在字体周围稍微更加模糊。 QML 允许您通过执行本机查看的字体。

Text {
    text: "Native here!"
    renderType: Text.NativeRendering
}

如果你尝试在这里做一个缩放效果,通过动画的像素大小,你会有一个“跳跃”的文字感觉,因为随着大小的增加,字体提示将继续努力将字体调整到适应不断变化的像素网格。此外,默认方法会在更改缩放比例时通过距离字段方法执行缩放:当使用本机渲染属性时,您会看到1:1比例的像素被缩放。默认使用的距离字段方法的另一个副作用是如果缩放/字体。尺寸非常大,您开始看到方法的不准确,这对您选择的任何字体大小有效,该方法基于字体从小图像生成距离字段字形,并且在缩放时不会更新。
qml字体模糊,其他设备有异样,解决方案_第1张图片
字体属性设置效果

此外,如果字体格式不正确(字形边框小于字形本身),它可能会在某些边框区域中剪切字体,具有奇怪的视觉效果。
所以,我的建议是:如果你需要可读取的文本,你不想捏捏缩放或其他以动画方式更改字体大小的其他效果,请使用本机渲染。如果你想要一些动态的效果,您可以尝试一个折中的解决方案,当运行动画化时,您可以选择默认值,动画完成之后再将其转换为本机属性。在一天结束时,这主要是您认为最重要和更精细的问题。值得注意的是,在较高的 DPI 屏幕上,暗示指令失去了很大的重要性,因为像素大小和相应的子像素抗锯齿“灰度”变得相对于字体更小,相对不那么重要。对于非正方形像素,如许多(但不是全部)AMOLED屏幕也是如此。

参考:https://www.jianshu.com/p/b290f7874771

你可能感兴趣的:(QML)