QML Text 字体、样式与对齐
目录Text 字体样式总览Text 基础用法演示代码关键逻辑解析适用场景注意点Text 字体属性演示代码关键逻辑解析适用场景注意点Text 文本样式演示代码关键逻辑解析适用场景注意点Text 文本对齐演示代码关键逻辑解析适用场景注意点运行验证扩展复用方向小结Text是 QML 里最基础的文本组件不需要依赖 Controls轻量且灵活。日常 UI 开发中调整字体、样式和对齐是最常见的需求。这篇把Text在字体样式方面的核心属性一次说清并给出实际使用时的选型建议。Text 字体样式总览Text的字体相关属性主要分三类基础样式颜色、粗体、斜体、下划线、删除线字体属性字体系列、字号、字重、字母/单词间距艺术样式Text.Normal、Text.Outline、Text.Raised、Text.Sunken搞清楚这三类的分工就能覆盖大部分文本展示需求。Text 基础用法这个 demo 展示了Text最常用的基础样式纯文本、颜色、粗体、斜体、下划线、删除线。Text不像Label那样自动继承 Controls 主题所以所有样式都需要手动指定。演示代码import QtQuick import QtQuick.Layouts FadeInAnimation { ColumnLayout { anchors.fill: parent anchors.margins: 20 spacing: 15 // ... 省略标题组件 TitleSeparator ... ColumnLayout { Layout.leftMargin: 20 spacing: 12 Text { text: 普通文本 - Hello World!; font.pointSize: 12 } Text { text: 带颜色文本; font.pointSize: 12; color: #E91E63 } Text { text: 粗体文本; font.pointSize: 12; font.bold: true } Text { text: 斜体文本; font.pointSize: 12; font.italic: true } Text { text: 下划线文本; font.pointSize: 12; font.underline: true } Text { text: 删除线文本; font.pointSize: 12; font.strikeout: true } } Item { Layout.fillHeight: true } } }关键逻辑解析Text的字体修饰都挂在font分组下font.bold粗体font.italic斜体font.underline下划线font.strikeout删除线color直接控制文字颜色和Label一样。适用场景这种基础样式适合商品价格划线显示、任务完成状态、文档编辑器里的富文本预览等。比如用font.strikeout: true表示已完成的待办事项用font.underline: true表示链接或重点内容。注意点如果项目里已经用了 Controls 主题直接用Text显示文字可能会出现字体和Label不一致的情况。这时要么手动指定font.family要么改用Label。Text 字体属性除了基础修饰还经常需要改字体系列、字号、字重和间距。这个 demo 展示了font.family、font.pointSize、font.weight、font.letterSpacing和font.wordSpacing的用法。演示代码import QtQuick import QtQuick.Layouts FadeInAnimation { ColumnLayout { anchors.fill: parent anchors.margins: 20 spacing: 15 // ... 省略标题组件 TitleSeparator ... ColumnLayout { Layout.leftMargin: 20 spacing: 12 Text { text: 字体系列: Arial; font.family: Arial; font.pointSize: 12 } Text { text: 字体系列: Courier New; font.family: Courier New; font.pointSize: 12 } Text { text: 字体大小: 13pt; font.pointSize: 13 } Text { text: 字体粗细: Bold (700); font.pointSize: 12; font.weight: Font.Bold } Text { text: 字母间距: 5px; font.pointSize: 12; font.letterSpacing: 5 } Text { text: 单词间距: 10px; font.pointSize: 12; font.wordSpacing: 10 } } Item { Layout.fillHeight: true } } }关键逻辑解析font.family字体名必须填系统里存在的字体font.pointSize和font.pixelSize前者按点后者按像素二选一不要同时用font.weight可以用Font.Light、Font.Normal、Font.Bold等枚举font.letterSpacing/font.wordSpacing做标题设计时很有用适用场景自定义字体系列适合做代码编辑器、终端模拟器、品牌标题字重和间距适合做标题层级系统。比如大屏数据看板里标题用font.weight: Font.Bold加letterSpacing: 2会显得更有设计感。注意点font.family一定要填系统里实际安装的字体名。如果字体不存在QML 会回退到默认字体不会报错但效果会不对。跨平台项目要特别注意字体可用性。Text 文本样式Text自带几种艺术字样式适合做简单特效。这个 demo 展示了Text.Normal、Text.Outline、Text.Raised、Text.Sunken四种效果。演示代码import QtQuick import QtQuick.Layouts FadeInAnimation { ColumnLayout { anchors.fill: parent anchors.margins: 20 spacing: 15 // ... 省略标题组件 TitleSeparator ... Row { spacing: 15 Text { font.pointSize: 14; text: Normal; style: Text.Normal } Text { font.pointSize: 14; text: Outline; style: Text.Outline; styleColor: red } Text { font.pointSize: 14; text: Raised; style: Text.Raised; styleColor: #AAAAAA } Text { font.pointSize: 14; text: Sunken; style: Text.Sunken; styleColor: #AAAAAA } } // ... 省略说明文本 ... Item { Layout.fillHeight: true } } }关键逻辑解析Text.Normal默认Text.Outline空心描边styleColor控制描边色Text.Raised凸起阴影Text.Sunken凹陷阴影这些样式适合在不需要额外 Canvas/Shader 时快速做出标题效果。适用场景Text.Outline适合做水印、标题描边Text.Raised和Text.Sunken适合做按钮按下状态或复古风格界面。游戏 UI、仪表盘标题经常用这几种效果来增强视觉层次。注意点styleColor只在Outline、Raised、Sunken时生效。如果文字本身颜色和styleColor太接近效果会不明显。建议用对比强烈的颜色组合。Text 文本对齐对齐分水平和垂直两个方向常用于按钮文字、卡片标题等场景。这个 demo 用Repeater把三种水平对齐左/中/右和三种垂直对齐置顶/居中/底部统一展示并且给每个示例加了背景框让对齐效果一目了然。演示代码import QtQuick import QtQuick.Layouts FadeInAnimation { ColumnLayout { anchors.fill: parent anchors.margins: 20 spacing: 15 // ... 省略标题组件 TitleSeparator ... ColumnLayout { Layout.leftMargin: 20 spacing: 12 Repeater { model: [ { text: 左对齐 (默认), hAlign: Text.AlignLeft, vAlign: Text.AlignVCenter, height: 32 }, { text: 居中对齐, hAlign: Text.AlignHCenter, vAlign: Text.AlignVCenter, height: 32 }, { text: 右对齐, hAlign: Text.AlignRight, vAlign: Text.AlignVCenter, height: 32 }, { text: 垂直置顶, hAlign: Text.AlignLeft, vAlign: Text.AlignTop, height: 40 }, { text: 垂直居中, hAlign: Text.AlignLeft, vAlign: Text.AlignVCenter, height: 40 }, { text: 垂直底部, hAlign: Text.AlignLeft, vAlign: Text.AlignBottom, height: 40 }, { text: 水平垂直居中, hAlign: Text.AlignHCenter, vAlign: Text.AlignVCenter, height: 40 } ] Rectangle { width: 200 height: modelData.height color: #f5f5f5 border.color: #ddd Text { anchors.fill: parent anchors.margins: 4 text: modelData.text horizontalAlignment: modelData.hAlign verticalAlignment: modelData.vAlign font.pointSize: 11 } } } } Item { Layout.fillHeight: true } } }关键逻辑解析Repeater配合model数组把三个水平对齐示例用同一段模板生成避免重复代码每个示例用Rectangle做背景框明确显示Text的边界对齐效果更直观horizontalAlignmentAlignLeft、AlignRight、AlignHCenterverticalAlignmentAlignTop、AlignBottom、AlignVCenter垂直对齐需要Text有明确高度通常配合anchors.fill: parent或固定height适用场景按钮文字通常需要水平和垂直双居中列表项标题根据语言习惯选择左对齐或右对齐数值展示常用右对齐方便多行数字的小数点对齐。注意点如果Text没有明确宽度或高度对齐属性可能看不出效果。水平对齐需要设置width垂直对齐需要设置height。用anchors.fill: parent是最稳妥的做法。运行验证Qt Creator 打开qml_text/CMakeLists.txt按CtrlR运行在左侧导航切换 Text 基础用法、字体属性、文本样式、文本对齐扩展复用方向把常用字体样式封装成自定义StyledText组件支持 primary、secondary、caption 等语义化类型用font.weight和letterSpacing做标题层级系统比如 h1/h2/h3结合Rectangle背景做按钮文字居中模板避免每次手动写对齐用Text.Outline做可缩放的水印文字小结Text的字体、样式和对齐属性虽然简单但组合起来能覆盖绝大多数文本展示需求。基础样式做内容强调字体属性做排版精细控制艺术样式做视觉点缀对齐属性做布局适配。合理组合这四类属性就能让界面文字既清晰又有层次感。已验证环境Qt 版本Qt 6.11.1操作系统Windows 11完整代码https://gitcode.com/u011186532/qml_demo/tree/main/qml_text

相关新闻

MRAM存储芯片-1Mb密度SPI串行接口MRAM

MRAM存储芯片-1Mb密度SPI串行接口MRAM

作为新一代非易失性存储器件,MRAM存储芯片凭借电子自旋存储核心技术,融合了高速读写、长久存数、低功耗的多重优势,突破了传统闪存、EEPROM存储器件的性能短板,成为通用存储领域的优质解决方案,广泛适配数据中心、云存…

2026/7/17 20:48:45 阅读更多 →
循环前缀:一段故意重复发送的信号——OFDM怎么把多径从敌人变成一个能用乘法算掉的东西

循环前缀:一段故意重复发送的信号——OFDM怎么把多径从敌人变成一个能用乘法算掉的东西

带宽是数字广播里最金贵的东西,能省一点是一点。可OFDM偏偏在每个符号前头都复制粘贴一小段,什么新信息都不载,就是把这个符号的尾巴原样再发一遍。看着像纯浪费。这段冗余叫循环前缀(cyclic prefix,也叫保护间隔)。DRM、CDR、DAB…

2026/7/17 20:48:45 阅读更多 →
欧美用户访问慢完全对策:源站、CDN、机房选址三角决策

欧美用户访问慢完全对策:源站、CDN、机房选址三角决策

欧美用户访问慢完全对策:源站、CDN、机房选址三角决策 工具地址:https://www.speedce.com 中文界面:https://speedce.com/?langzh-CN 联系:speedceadsgmail.com 写在前面 本文围绕「欧美用户访问慢完全对策」展开,提…

2026/7/17 20:46:45 阅读更多 →

最新新闻

基于RISC-V的CH32V208开发板WebServer实现指南

基于RISC-V的CH32V208开发板WebServer实现指南

1. 项目背景与硬件选型沁恒CH32V208开发板是一款基于RISC-V架构的无线型微控制器开发平台,搭载了沁恒自研的V4C内核。这款开发板在标准RISC-V基础上进行了多项增强设计,包括硬件堆栈区和快速中断入口机制,使得中断响应速度得到显著提升。我在…

2026/7/17 21:35:03 阅读更多 →
从零开始学AXI(八)

从零开始学AXI(八)

在AMBA AXI协议中,与突发类型相关的一个可配置属性是Wrap_CLS_Modifiable,该属性决定了当突发类型为环绕式(WRAP)时,事务是否必须满足缓存行大小且可修改。 若该属性取值为True,则表示事务必须为缓存行大小…

2026/7/17 21:35:03 阅读更多 →
微信聊天记录怎么导出成文档?4种格式实测对比,Word/Excel/PDF都能保存

微信聊天记录怎么导出成文档?4种格式实测对比,Word/Excel/PDF都能保存

上次帮一个朋友整理案件证据,她需要把前前后后三年的微信聊天记录倒出来交给法院,要是一个个截图那就太折腾了。微信那个保存聊天记录的功能她试过了,导出的是个加密文件打不开。法院要的是纸质材料或可读电子文档,不是一堆乱码。…

2026/7/17 21:35:03 阅读更多 →
Docker容器中Vim缩进配置一步搞定:Python/JS/Go多语言适配

Docker容器中Vim缩进配置一步搞定:Python/JS/Go多语言适配

1. 项目概述:为什么在 Docker 环境里还要专门搞 Vim 的 Tab 缩进?你有没有遇到过这种场景:在本地写 Python 脚本时,Vim 里按 Tab 键自动缩进 4 个空格,代码格式清爽利落;可一进到docker run -it ubuntu:22.…

2026/7/17 21:33:03 阅读更多 →
使用js-audio-recorder实现Web录音功能全解析

使用js-audio-recorder实现Web录音功能全解析

1. 项目概述 在前端开发中实现录音功能一直是个有趣且实用的需求。最近我在一个项目中使用了js-audio-recorder这个轻量级录音组件,它不仅实现了基本的录音功能,还完美解决了音频下载、播放以及Blob对象与File对象转换等常见问题。这个组件基于Web Audi…

2026/7/17 21:33:03 阅读更多 →
SVG加载动画:优势、实现与性能优化

SVG加载动画:优势、实现与性能优化

1. SVG加载动画的核心优势 作为一名前端开发者,我使用SVG制作加载动画已有五年多时间。相比传统的GIF或CSS动画,SVG加载动画具有几个不可替代的优势: 首先,SVG是矢量图形,这意味着无论放大多少倍都不会出现像素化。这…

2026/7/17 21:33:03 阅读更多 →

日新闻

2026全国外贸独立站搭建公司推荐排行,含零代码SAAS、AI编程、源码定制

2026全国外贸独立站搭建公司推荐排行,含零代码SAAS、AI编程、源码定制

2026全国外贸独立站搭建公司推荐排行 外贸工厂、工贸企业建设官网,核心需求与普通展示型网站并不相同。除了页面整洁、多语言适配和海外访问体验,企业还要重点考虑数据能否导出、站点能否迁移、源码是否可控、后续费用是否透明,以及更换服务…

2026/7/17 0:02:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第19篇:3D 翻转动画实现——ArkTS 动画系统全解析

HarmonyOS 应用开发《掌上英语》第19篇:3D 翻转动画实现——ArkTS 动画系统全解析

3D 翻转动画实现——ArkTS 动画系统全解析引言 在移动应用中,卡片翻转动画是最受欢迎的交互动效之一,它能给用户带来直观的"物理世界"操作感。在我们的英语学习 App 的单词学习页面(CourseHomePage.ets)中,就…

2026/7/17 0:02:10 阅读更多 →
2026键盘推荐|IQUNIX EV63多场景适配,不允许有人不知道!

2026键盘推荐|IQUNIX EV63多场景适配,不允许有人不知道!

现在很多用户都需要一款能适配多场景的键盘,既能满足交流码字的需求,又能应对居家电竞的性能需求,最好还得有点小颜值。而大多键盘都只能兼顾其中一两个场景。这次我实测了IQUNIX EV63三款配色(银武士、黑武士、紫罗兰&#xff09…

2026/7/17 0:04:10 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/17 3:22:28 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/17 3:01:28 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/16 23:40:37 阅读更多 →

月新闻