You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt技术咨询:QFont::pointSize的磅与QFont::pixelSize的像素有何区别?

QFont::pointSize() 与 QFont::pixelSize() 的区别

先搞懂磅(Point)的本质

Qt里QFont::pointSize()对应的磅,是排版行业的标准单位,1磅 = 1/72英寸。它是和物理尺寸绑定的逻辑单位,不是直接对应屏幕像素——也就是说,不管你用的是手机、显示器还是平板,设置12磅的字体,拿物理尺子量的话,高度大概是12/72=1/6英寸,Qt会根据屏幕的DPI(每英寸像素数)自动换算成对应像素数来渲染。

比如常见的96DPI屏幕,1磅≈1.333像素(96÷72=1.333);如果是144DPI的高分辨率屏幕,1磅≈2像素。

像素(Pixel)的直白性

QFont::pixelSize()就简单直接得多——它直接指定字体渲染后的像素高度,完全和屏幕像素一一对应。设置16像素的字体,不管屏幕DPI是多少,渲染出来的字体高度就是16个像素点。

核心差异对比

  • 单位逻辑:pointSize是绑定物理尺寸的逻辑单位,pixelSize是屏幕像素的物理单位
  • 设备适配:pointSize能跨设备保持字体的物理大小一致,适合需要统一阅读体验的场景;pixelSize是固定像素数,高DPI屏幕上会显得偏小,低DPI屏幕上偏大
  • 使用场景:做跨设备的通用界面、文档类应用时用pointSize;需要精确控制字体和UI元素对齐、固定文本区域大小的场景用pixelSize
  • 换算关系:已知屏幕DPI时,两者可以换算:像素值 = 磅值 * (屏幕DPI / 72)

代码示例

// 设置12磅字体,自动适配屏幕DPI
QFont physicalFont;
physicalFont.setPointSize(12);

// 设置16像素字体,固定像素高度
QFont pixelFont;
pixelFont.setPixelSize(16);

内容的提问来源于stack exchange,提问作者Max Popov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:01:16