为用户界面添加文本
您可以使用几种不同的文本组件为用户界面添加只读或可编辑文本,如标题或标签以及带有占位符文本的文本输入字段。Text 组件可添加格式化文本,Text Edit 组件可添加多行行编辑,Text Input 组件可添加单行可编辑字段。
您可以选择要使用的字体,并为每个文本字符串指定大量属性,如点或像素大小、样式名称、强调、对齐和间距。
如需了解更多信息,请观看以下视频:
要创建带背景的标签,请使用Components > 中的Label 组件。 Qt Quick Controls.该模块还包含用于创建Text Field 和Text Area 控件的组件。它们与基本组件的不同之处在于,它们采用了通用样式,而且可以为其指定占位符文本。
使用富文本
您可以在Text 和Text Input 组件中使用富文本。要打开富文本编辑器,请在Properties >Character >Text 中选择
(Edit) 按钮。
在富文本编辑器中,您可以
- 强调文本。
- 创建超链接。
- 对齐文本
- 创建带项目和编号的列表
- 指定文本颜色
- 选择文本字体
- 设置字体大小
- 创建表格

标记要翻译的字符串
为支持翻译,请标记应翻译的字符串。在Properties >Character >Text 中,选择tr 。

默认情况下,文本字符串括在qsTr() 调用中。

如果使用文本 ID 而不是纯文本,请将默认调用改为qsTrId() 。 选择Edit >Preferences >。 Qt Quick> Qt Quick Designer,然后在Internationalization 组中选择qsTrId() 单选按钮。有关更多信息,请参阅基于文本 ID 的翻译。
要在编辑文本时保留上下文,或通过在文本属性上设置绑定来更改上下文,请通过选择qsTranslate() 单选按钮将默认调用更改为qsTranslate() 。
更多信息,请参阅为翻译编写源代码。
字符属性
您可以在Properties 中的Character 部分设置字体属性。对于在Text 字段中输入的每个字符串,您可以在Font 字段中选择要使用的字体,并指定文本的大小、强调、对齐和间距。在Size 字段中以点或像素为单位指定字体大小。

要在Font 字段的可用字体列表中显示自定义字体,需要先将其添加到资产中:
- 选择Assets >
。 - 选择字体文件,然后选择Open 。
- 在Add Resources 对话框中选择保存文件的位置。
- 选择OK 。
在Weight 字段中,您可以从预定义值列表中选择字体重量,范围在特轻和特粗之间。您还可以使用Emphasis 组中的按钮对文本进行加粗、斜体、下划线或删除线格式化。
如果在Style name 字段中设置了样式名称,则字体将与样式名称相匹配,而不是与Weight 和Emphasis 字段中设置的值相匹配。
Word spacing 字段的值会改变单词之间的默认间距,而Letter spacing 字段的值会改变单词中单个字母之间的间距。正值会增加相应的像素间距,而负值则会减小间距。
Line height 字段的值设置文本的行高。在Text Extras 部分的Line height mode 字段中,选择FixedHeight 以像素为单位设置行高,或选择ProportionalHeight (默认值)按行比例设置间距(作为乘数)。例如,设置为 2 表示双倍行距。
文本对齐方式
您可以水平和垂直对齐文本组件。默认情况下,文本垂直对齐到顶部。水平对齐方式遵循文本的自然对齐方式。默认情况下,从左到右的文本(如英文)对齐到文本区域的左侧,而从右到左的文本(如阿拉伯文)对齐到文本区域的右侧。
你可以将文本向左、向右、向上或向下对齐,并水平或垂直居中。还可以为水平文本对齐。
对于单行文本,文本的大小就是文本的面积。在这种常见情况下,所有对齐方式都是等效的。要使文本居中,请使用锚定或将文本组件的宽度绑定到父组件的宽度。更多信息,请参阅设置绑定。
文本和样式颜色
您可以设置文本本身的颜色和文本样式使用的辅助颜色。
对于Text Edit 和Text Input 组件,您还可以设置选中文本的颜色,以及在Selected text color 和Selection color 字段中选中文本后使用的文本高亮颜色。
对于Text Field 和Text Area 控件,您还可以设置占位符文本的颜色。
有关选择颜色的更多信息,请参阅选取颜色。您只能为文本组件设置纯色。
高级文本属性
文本组件的高度和宽度会根据您设置的属性值自动确定,以适应您在Text 字段中指定的字符串长度和字体大小等。您可以在Text Extras 部分指定用于格式化文本的其他属性。

Size mode 字段的值指定如何确定显示文本的字体大小。选择FixedSize 可使用Character 部分中Size 字段指定的大小(像素或点)。
选择HorizontalFit 或VerticalFit ,可使用与组件宽度或高度相适应的最大尺寸,直至指定的尺寸。选择Fit ,使用适合组件宽度和高度的最大尺寸,直至指定的尺寸。拟合文本字体大小的最小边界由Min size 字段指定,最大边界由Size 字段指定。
换行和隐藏文本
在Wrap mode 字段中,可以根据文本组件的宽度对文本进行换行。只有为文本组件设置了明确的宽度,文本才会换行。默认情况下,文本不会被换行。选择WordWrap 可限制只在单词边界进行换行。选择WrapAnywhere 可在行的任意位置启用换行,即使换行发生在单词中间。选择Wrap 可在可能的情况下在单词边界或行上的适当位置换行,即使是在单词中间。
您可以使用Elide 属性和Wrap 选项,将单行纯文本调整到设定的宽度。选择ElideRight ,然后设置Max line count 或文本组件高度(在H 字段)。如果同时设置这两项,除非行数不符合允许的高度,否则最大行数将适用。
如果文本是多长字符串,而您将Elide 属性值设置为ElideNone 以外的值,则将使用第一个适合的字符串,否则将省略最后一个字符串。
多长字符串从长到短排序,中间用 Unicode字符串终结符字符U009C 分隔。
格式文本
文本可以是纯文本格式,也可以是富文本格式,具体取决于您在Format 字段中设置的值。如果选择AutoText ,且文本第一行包含 HTML 标记,则文本将被视为富文本。富文本支持 "支持的 HTML 子集"中描述的 HTML 4子集。请注意,纯文本比富文本具有更好的性能。
渲染文本
在Render type 字段中,您可以覆盖文本组件的默认渲染类型。如果希望文本在目标平台上看起来像本地文本,并且不需要文本变换等高级功能,请选择NativeRendering 。使用旋转或缩放与本地渲染相结合会导致效果不佳,有时甚至会出现像素化。
如果选择NativeRendering ,可以在Font Extras 部分的Hinting 字段中设置提示首选项:
- PreferDefaultHinting 使用目标平台的默认提示级别。
- PreferNoHinting 渲染文本时尽可能不提示字形轮廓。
- PreferVerticalHinting 渲染文本时不显示水平提示,但尽可能在垂直方向将字形与像素网格对齐。
- PreferFullHinting 渲染文字时在水平和垂直方向都有提示。
注意: 此属性仅描述一种偏好,因为并非所有 Qt 支持的平台都支持全部的提示级别。
高级字体属性
您可以在Font Extras 部分为字体指定其他属性。

在Capitalization 字段中,选择MixedCase 可实现正常文本渲染,不会应用大小写更改。也可以将文本设置为全大写或小写,或使用小写。Capitalize 选项将每个单词的第一个字符渲染为大写字符。
您可以将Style 字段中的字体样式设置为Outline 、Raised 或Sunken 。您在Style color 字段中选择的颜色将用作轮廓文字的轮廓色,以及凸起或凹陷文字的阴影色。
要在使用所选字体绘制文本时使用分隔线,请选择Auto kerning 。
有时,字体会对一组字符应用复杂的规则,以便正确显示这些字符。在某些书写系统中,如婆罗门文字,需要这样做才能使文字清晰可读,但在其他系统中,如拉丁文字,这只是一种外观特征。为了提高性能,默认情况下会禁用这些功能。如果需要,请选择Prefer shaping 。
文本输入
您可以使用Text Edit 和Text Input 组件添加用户可以输入文本的文本字段。
Text Input 组件显示一行可编辑的纯文本,而Text Edit 组件则显示一个可编辑的格式化文本块。这两个组件都用于接受文本输入。

输入密码
您可以为Text Input 组件设置适合输入密码的属性。
在Input mask 字段中,您可以创建一个输入掩码,其中包含掩码和元字符以及它们之间的分隔符。创建或清除后,文本编辑或输入将由输入掩码字符串的副本填充,其中元字符已被删除,掩码字符已被空白字符替换。例如,在输入 IP 地址的输入字段中,可以使用以下掩码(下划线作为空白字符):000.000.000.000;_.有关创建输入掩码的更多信息,请参阅QLineEdit::inputMask 文档。
在Echo mode 字段中,选择Password 可显示与平台相关的密码掩码字符,而不是用户输入的实际字符。选择PasswordEchoOnEdit 可显示用户输入的字符。掩码字符将显示在Password character 字段中。
输入文本
您可以指定用户在文本编辑或输入字段中输入文本的方式。
在Maximum length 字段中,设置用户可输入的最大字符数。
Auto scroll 的值决定了当文本长度超过字段宽度时,文本编辑或输入是否要滚动。
如果选择Overwrite mode ,现有文本将被新文本逐字覆盖。否则,新文本将插入光标位置,取代现有文本。默认情况下,新文本不会覆盖现有文本。
要防止用户更改文本,请选择Read only 。
选择文本
在Selection mode 字段中,您可以指定使用指针设备选择文本时是选择单个字符还是整个单词。
选择Select by mouse 可使用户以某种特定平台的方式使用鼠标选择文本。对于某些平台,这可能不是一种合适的交互方式,因为它可能与文本在Flickable 组件中的行为方式相冲突。
对于Text Edit 组件,您可以选择Select by keyboard ,使用户即使在只读编辑字段中也能使用键盘选择文本。如果该属性设置为false ,即使文本是可编辑的,用户也不能使用键盘选择文本。
聚焦
Focus on press 的值决定文本编辑或输入是否应在按下鼠标时获得主动焦点。
默认情况下,当文本编辑器或输入法获得活动焦点时,光标将变为可见,这样就可以根据光标当前是否显示绑定其他属性。由于Cursor visible 属性的值会自动设置和取消设置,因此您自己设置的任何值都可能被覆盖。
如果Persistent selection 被选中,则当活动焦点移动到另一个组件时,文本编辑器或输入将保持其选中状态。
制表符和页边距
您可以在Text Edit 组件中指定用于格式化文本块的其他属性。

在Tab stop distance 字段中,以设备单位设置制表符停止点之间的默认距离。
在Text margin 字段中,以像素为单位设置文本周围的边距。
填充
Padding 部分的属性值指定了内容周围的填充。除非您明确设置,否则各个填充属性都采用Global 字段的值。

注意: 如果您明确设置了文本编辑或输入的宽度或高度,请确保其足够大以容纳填充值。如果文本在呈现时没有足够的垂直或水平空间,就会出现剪切。
占位符文本
对于Text Field 和Text Area 控件,您可以在用户输入文本之前指定显示在字段中的文本。在Placeholder text 字段中指定文本,在Placeholder color 字段中指定文本的颜色。

选择Hover 可使文本字段接受悬停事件。
文本组件概述
下表列出了可用于向用户界面添加文本的组件。位置列包含可在Components 中找到该组件的选项卡名称。MCU 支持列表示 MCU 支持哪些组件。
| 图标 | 名称 | 位置 | MCU 支持 | 用途 |
|---|---|---|---|---|
| Label | Qt Quick Controls | 无 | 具有继承样式和字体的文本标签。 | |
| Text | 默认组件 - 基本 | 是 | 格式化的只读文本。 | |
| Text Area | Qt Quick Controls | 无 | 多行可编辑的格式化文本。 | |
| Text Edit | 默认组件 - 基本 | 无 | 单行可编辑、可验证的格式化文本。 | |
| Text Field | Qt Quick Controls | 无 | 一行可编辑的纯文本。 | |
| Text Input | 默认组件 - 基本 | 无 | 一行可编辑、可验证的纯文本。 |
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.