Qt的pointSize和pixelSize,qt字体大小自适应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt的pointSize和pixelSize,qt字体大小自适应相关的知识,希望对你有一定的参考价值。

参考技术A 使用QFont的setPointSize,此时字体的大小会跟随DPI改变而改变。

使用QFont的setPixelSize,此时字体的大小不会随DPI的改变而发生变化。

通过设置PointSize的字体来说,字体大小是随着屏幕大小以及分辨率自适应的,无须处理字体的缩放;

通过设置PixelSize的字体来说,所占分辨率大小固定,在相同尺寸上更高分辨率的屏幕上,由于其单位长度内的像素点数更多,即像素密度更大,字体会看起来小一些.

要处理这种情况,一种办法就是所有字体都用PointSize来表示大小,但对于已经采用PixelSize的字体来说,就要对其进行控制缩放。 

通过qss来实现:

PointSize:    font-size:16pt;

PixelSize:     font-size:16px;

Qml 字体使用pixelSize来自适应界面

文章目录

前言

一直被字体自适应这个问题困扰,尤其是使用pixelSize单位字体,在不同的分辨率电脑上会显示不一样的效果,有的大,有的中等,有的贼小,这是因为使用pixelSize会导致字体给固定住,多大就是大多,不会自己变化,遇到分辨率高的就变小,低的就贼大,刚好和设计原型差不多的,就看着很漂亮。

而使用pointSize虽然会自己放大缩小,但是和设计稿的字体差距很大,而且也会存在相应问题,而我更倾向于使用pixelSize,既然它固定了,我可以根据比例自己放大缩小即可,所以本文重点就要解决的就是如何获取放大缩小的比例,使像素字体无论再什么设备上都能看起来是中等好看的!

思路

要想获取到字体的缩放因子,就得知道宽高的原始像素对比现设备的原始像素,分别得到不同的宽高比例值,获取最小值,这就是缩放比例因子,然后乘以当前的字体大小,就可以等比缩放字体了,当然还可以增加一个缩放基础因子,初始化为1,这个需要人为的调整,有的可能1不太好看,需要调整到1.1就会更佳,下面给出具体的获取代码

  horizontalRatio = 变化的U

以上是关于Qt的pointSize和pixelSize,qt字体大小自适应的主要内容,如果未能解决你的问题,请参考以下文章

Qml 字体使用pixelSize来自适应界面

Qml 字体使用pixelSize来自适应界面

UIFont 的磅值到底是多少?

QML 设置字体大小写

qtcreator_process_stub中文输出乱码

如何更改 QML 应用程序的逻辑 DPI?