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

相关新闻

LLM评估新范式:如何校准AI裁判以对齐人类偏好

LLM评估新范式:如何校准AI裁判以对齐人类偏好

1. 项目概述:当AI开始评估AI,我们如何相信它的判断?最近在跟进大语言模型评估这块的工作,伯克利那边发的一篇新论文让我眼前一亮。标题挺有意思,叫“如何‘验证验证者’?”,说白了,就…

2026/7/17 20:54:32阅读更多 →
CH32X035芯片U盘固件更新方案与实现

CH32X035芯片U盘固件更新方案与实现

1. CH32X035芯片与U盘固件更新概述CH32X035是南京沁恒微电子推出的一款基于RISC-V内核的32位通用微控制器,内置USB2.0全速控制器,这使其成为实现USB设备功能的理想选择。通过将其配置为USB大容量存储设备(Mass Storage Device,MSD…

2026/7/17 20:54:32阅读更多 →
鸿蒙三方库 | harmony-utils之NetworkUtil默认网络与绑定网络详解

鸿蒙三方库 | harmony-utils之NetworkUtil默认网络与绑定网络详解

前言 在多网络环境下(如同时连接WiFi和蜂窝),了解默认网络和绑定网络的概念对网络管理很重要。pura/harmony-utils 的 NetworkUtil 封装了默认网络查询方法。本文将从API说明、代码实战、进阶用法、常见问题等多个维度进行全面讲解&#xff0…

2026/7/17 20:54:32阅读更多 →
AutoGPT API设计与实现:从智能体到可编程服务的工程实践

AutoGPT API设计与实现:从智能体到可编程服务的工程实践

1. 项目概述:为什么我们需要一个AutoGPT的API?如果你最近在捣鼓AI智能体,尤其是像AutoGPT这样的自动化任务执行框架,那你大概率会遇到一个头疼的问题:怎么把它集成到自己的应用里去?是直接复制粘贴它那一大…

2026/7/17 21:54:36阅读更多 →
ChatGPT Sites公测:自然语言建站如何重塑企业协作效率

ChatGPT Sites公测:自然语言建站如何重塑企业协作效率

那天下午,团队正为一个紧急的客户演示焦头烂额。市场同事需要快速搭建一个展示我们数据处理能力的微型网站,既要能嵌入动态图表,又要能实时更新。按传统流程,这得前端、后端、产品经理来回沟通好几轮,没两天时间根本下…

2026/7/17 21:54:36阅读更多 →
华为Mate10不开机亮红灯故障维修与数据恢复全流程指南

华为Mate10不开机亮红灯故障维修与数据恢复全流程指南

这次我们来看一个华为Mate10手机维修的实际案例。用户手机突然不开机,开机时亮红灯,里面有重要的孩子学习资料需要恢复。这种情况在华为手机中比较常见,通常涉及电源管理、主板故障或电池问题。华为Mate10作为一款经典机型,使用几…

2026/7/17 21:54:36阅读更多 →
Ubuntu 22.04中Chrome中文字体显示异常的解决方案

Ubuntu 22.04中Chrome中文字体显示异常的解决方案

1. 问题现象与根源分析最近在Ubuntu 22.04 LTS上使用Chrome浏览器时,发现中文字体显示异常混乱——有些页面显示为宋体,有些变成黑体,还有些直接变成无法辨认的方块字。这种情况在访问中文网站、查看PDF文档或使用在线文档工具时尤为明显。经…

2026/7/17 21:54:36阅读更多 →
GitHub Python学习指南:从环境配置到开源项目实战

GitHub Python学习指南:从环境配置到开源项目实战

对于刚开始学习 Python 的开发者来说,最大的挑战往往不是语法本身,而是如何找到真实、可运行、有实际价值的练习项目。很多教程只教基础语法,但学完后不知道能做什么;有些项目又过于复杂,新手连环境都配不通。GitHub 作…

2026/7/17 21:54:36阅读更多 →
WS51单片机ISP下载速度优化:从4.8kbps到25.6kbps实战指南

WS51单片机ISP下载速度优化:从4.8kbps到25.6kbps实战指南

如果你正在使用WS51系列单片机进行开发,可能会遇到一个共同的痛点:ISP下载速度太慢。传统的ISP下载程序往往只有几kbps的速度,每次烧录程序都需要等待几十秒甚至更长时间,这在快速迭代的开发过程中简直是效率杀手。最近&#xff0…

2026/7/17 21:49:36阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/17 10:42:55阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/17 8:31:03阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/17 13:22:23阅读更多 →
VS Code 高效配置与个性化定制全攻略

VS Code 高效配置与个性化定制全攻略

1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器,VS Code 的默认配置已经能满足基本需求,但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间,期间尝试过各种配置方案,总结出这套适合大多数…

2026/7/17 0:00:01阅读更多 →
从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像

从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像

在异常检测领域,很多优秀算法最初都是以研究代码的形式发布的。它们能够在固定测试集上复现实验结果,却不一定能被普通用户直接拿来测试自己的图片。尤其是最近很多算法仅提供在固定测试集的测试环境,而gradio的demo演示也不会提供。 对工程应用和在自己的图片上进行测试来…

2026/7/17 0:00:01阅读更多 →
WinRAR高效配置指南:从基础安装到高级压缩实战

WinRAR高效配置指南:从基础安装到高级压缩实战

前几天帮同事处理一个客户发来的压缩包,解压时系统自带的工具弹出一串乱码,换用 WinRAR 却顺利打开了。这种看似简单的场景,恰恰暴露了不同压缩工具在处理非标准编码、分卷压缩或加密文件时的差异。WinRAR 作为一款老牌工具,真正价…

2026/7/17 0:00:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/16 20:13:14阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/17 13:22:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/17 17:26:50阅读更多 →