QT 字体

字体设计中,关于字体的高度和各类间距,有一套比较标准的术语和概念,通常用图示的形式来说明字体的纵向度量(metrics)及其相关间距。以下是常见的字体设计相关的各类高度和间距的概念解释:

1. 基线 (Baseline)

  • 字符在一行中的"站立"线,所有字母的底部(除一些下延字母如g,p,q,j等)都在该线上。

2. 字体高度相关指标(垂直度量)

名称 说明
Ascent(上升高度) 从基线向上的高度,通常是大写字母高度或大部分小写字母的最高点之处。
Descent(下降高度) 从基线向下的高度,用于表示下延字母的部分(例如 g, j, p, q)的延伸部分。
Leading(行间距) 行与行之间的最小间隔,等于行距减去字体高度(可视为行间的空白部分)。
Height(字体高度) 字体的总高度,通常等于 Ascent + Descent + 额外的行间距(或Leading)
Line Spacing(行距) 两行基线之间的距离,包含字体高度和行间距。

3. 字形相关指标(字体内部)

名称 说明
Cap Height (大写字母高度) 大写字母如 "H" 的高度,从基线到其顶端。
X-Height (小写x高度) 小写字母"x"的高度,代表大多数字母的中间高度,衡量字体的视觉大小。
Ascender (升部位) 字母如"b,d,h,k,l,t"中部分上升过基线的部分高度。
Descender (降部位) 字母如"g,j,p,q,y"中延伸到基线以下的部分高度。

字体高度及间距图示

scss 复制代码
text
        ┌──────────────────────────── Cap Height
        │     ┌────────────────── Ascent
        │     │
        │     │ 
───────┼─────┼──────────────────── Baseline (基线)
        │     │
        │     │
        │     └────────── Descent
        │
        └────────────── Leading (行距D中的附加间距)

举例说明:

  • 普通字体的 "Height" 代表字体从最高点到最低点的像素,高度=ascent+descent。
  • leading 是控制多行文本时各行之间额外的留白,避免行间文字重叠,保证阅读舒适。
  • cap heightx-height 影响字体视觉大小和字形特征,可用来调整字体的风格和可读性。

用Qt QFontMetrics 获取字体设计相关的指标

bash 复制代码
python
metrics.ascent()       # 返回上升高度
metrics.descent()      # 返回下降高度
metrics.height()       # 总高度 = 上升+下降+行间距
metrics.leading()      # 返回行间距
metrics.capHeight()    # 大写字母高度
metrics.xHeight()      # 小写字母x高度

总结

字体的各种间距设计,保证了字形的视觉美感、可读性以及多行排版的舒适度。理解这些参数,可以帮助你根据需求精细控制字体的布局和UI界面设计。

如果需要更直观的图示教程,可以参考字体设计相关的专业书籍或设计网站,很多都会配有详尽的字体结构图解和设计案例。

添加到后续问题

检查来源

  1. js.design/special/art...
  2. library.ttcdw.com/dev/upload/...
  3. cn.monotype-asia.com/resources/a...
  4. blog.csdn.net/quantum7/ar...
  5. m.zcool.com.cn/article/ZMT...
  6. www.nstc.gov.tw/nstc/attach...
  7. hgfonts.com/information...
  8. isux.tencent.com/articles/Ch...
  9. cn.monotype-asia.com/resources/a...
相关推荐
AirMan38 分钟前
深入解析 Spring Caffeine:揭秘 W-TinyLFU 缓存淘汰策略的高命中率秘密
后端
小码编匠1 小时前
C# Bitmap 类在工控实时图像处理中的高效应用与避坑
后端·c#·.net
布朗克1681 小时前
Spring Boot项目通过RestTemplate调用三方接口详细教程
java·spring boot·后端·resttemplate
uhakadotcom2 小时前
使用postgresql时有哪些简单有用的最佳实践
后端·面试·github
IT毕设实战小研2 小时前
基于Spring Boot校园二手交易平台系统设计与实现 二手交易系统 交易平台小程序
java·数据库·vue.js·spring boot·后端·小程序·课程设计
泉城老铁3 小时前
Spring Boot 中根据 Word 模板导出包含表格、图表等复杂格式的文档
java·后端
用户4099322502123 小时前
如何在FastAPI中玩转APScheduler,实现动态定时任务的魔法?
后端·github·trae
风象南3 小时前
开发者必备工具:用 SpringBoot 构建轻量级日志查看器,省时又省力
后端
RainbowSea3 小时前
伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 04
java·spring boot·后端