支持的 HTML 子集
Qt 的文本窗口小部件能显示使用HTML 4标记子集指定的富文本。使用QTextDocument 的部件(如QLabel 和QTextEdit )可以显示以这种方式指定的富文本。
在文本小工具中使用 HTML 标记
小工具会自动检测 HTML 标记,并相应地显示富文本。例如,用字符串"<b>Hello</b> <i>Qt!</i>"
设置标签的text 属性,标签就会显示如下文本:Hello Qt!
当文本使用 HTML 标记时,Qt 会遵循HTML 4规范定义的规则。这包括文本布局的默认属性,如文本流的方向(从左到右),可通过对文本块应用 dir
属性对文本块进行更改。
支持的标记
下表列出了 Qt富文本引擎支持的 HTML 标签。
注意: 下面列出的标签实现的功能是完整 HTML 4 规范的子集。并非所有属性都受支持,请参阅每个标签的注释。
标签 | 描述 | 注释 |
---|---|---|
a | 锚点或链接 | 支持href 和name 属性。 |
address | 地址 | |
b | 粗体 | |
big | 字体较大 | |
blockquote | 缩进段落 | |
body | 文档正文 | 支持bgcolor 属性,该属性可以是 Qt XMLcolor name 或#RRGGBB 颜色规范。 |
br | 换行 | |
center | 段落居中 | |
cite | 内联引用 | 与i 相同。 |
code | 代码 | 与tt 相同。 |
dd | 定义数据 | |
dfn | 定义 | 同i 。 |
div | 文件划分 | 支持标准块属性。 |
dl | 定义列表 | 支持标准块属性。 |
dt | 定义项 | 支持标准块属性。 |
em | 强调 | 与i 相同。 |
font | 字体大小、家族和/或颜色 | 支持以下属性:size ,face , 和color (Qt XMLcolor names 或#RRGGBB )。 |
h1 | 一级标题 | 支持标准块属性。 |
h2 | 二级标题 | 支持标准块属性。 |
h3 | 三级标题 | 支持标准块属性。 |
h4 | 4 级标题 | 支持标准块属性。 |
h5 | 5 级标题 | 支持标准块属性。 |
h6 | 6 级标题 | 支持标准块属性。 |
head | 文件标题 | |
hr | 水平线 | 支持width 属性,可指定为绝对值或相对值 (% )。 |
html | HTML 文档 | |
i | 斜体 | |
img | 图像 | 支持src 、source (兼容 Qt XML 3)、width 和height 属性。 |
kbd | 用户输入的文本 | |
meta | 元信息 | 如果使用meta 标签指定了文本编码,Qt::codecForHtml() 将接收该编码。同样,如果在QTextDocument::toHtml() 中指定了编码,则编码会通过meta 标签等存储:<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" /> |
li | 列表项 | |
nobr | 不可断开文本 | |
ol | 有序列表 | 支持标准列表属性。 |
p | 段落 | 默认为左对齐。支持标准块属性。 |
pre | 预格式文本 | |
qt | Qt 富文本文档 | html 的同义词。为与 Qt 早期版本兼容而提供。 |
s | 删除线 | |
samp | 示例代码 | 与tt 相同。 |
small | 小字体 | |
span | 分组元素 | |
strong | 强 | 与b 相同。 |
sub | 下标 | |
sup | 上标 | |
table | 表格 | 支持以下属性:border ,bgcolor (Qt XMLcolor names 或#RRGGBB )、cellspacing ,cellpadding ,width (绝对或相对)和height 。 |
tbody | 表主体 | 无任何作用。 |
td | 表格数据单元格 | 支持标准表格单元格属性。 |
tfoot | 表格页脚 | 不做任何操作。 |
th | 表格页眉单元格 | 支持标准表格单元格属性。 |
thead | 表格页眉 | 如果指定了thead 标签,则在打印跨多页的表格时使用。 |
title | 文件标题 | 使用title 标签指定的值可通过QTextDocument::metaInformation() 使用。 |
tr | 表格行 | 支持bgcolor 属性,该属性可以是 Qt XMLcolor name 或#RRGGBB 颜色规范。 |
tt | Typewrite 字体 | |
u | 下划线 | |
ul | 无序列表 | 支持标准列表属性。 |
var | 变量 | 与i 相同。 |
块属性
div
,dl
,dt
,h1
,h2
,h3
,h4
,h5
,h6
,p
标签支持以下属性:
align
( , , , )left
right
center
justify
dir
( , )ltr
rtl
列表属性
ol
和ul
标记支持以下属性:
type
( , , , , , )1
a
A
square
disc
circle
表格单元格属性
td
和th
标签支持以下属性:
width
(绝对值、相对值或无值)bgcolor
( Qt XML 或 )color names#RRGGBB
colspan
rowspan
align
( , , , )left
right
center
justify
valign
( , , )top
middle
bottom
CSS 属性
下表列出了 Qt富文本引擎支持的 CSS 属性:
属性 | 值 | 说明 |
---|---|---|
background-color | <color> 颜色 | 元素的背景颜色 |
background-image | <uri> 图片 | 元素的背景图像 |
color | <color> 颜色 | 文本前景色 |
font-family | <字体族名称 | 字体族名称 |
font-size | [ 小 | 中 | 大 | x 大 | xx 大 ] | <size>pt | <size>px | 相对于文档字体的字体大小,或以点或像素指定 |
font-style | [正常 | 斜体 | 斜体] | |
font-weight | [正常 | 粗体 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 ]。 | 指定文本使用的字体权重,其中normal 和bold 映射到相应的QFont 权重。数值是QFont 权重值的 8 倍。 |
text-decoration | 无 | [ 下划线 || 上划线 || 穿行 ] | 附加文本效果 |
font | [ [ <'font-style'> || <'font-weight'> ]? <'font-size'> <'font-family'> ]。 | 字体速记属性 |
text-indent | <长度>像素 | 首行文字缩进(以像素为单位 |
white-space | normal | pre | nowrap | pre-wrap | 声明如何处理 HTML 中的空白。 |
margin-top | <length>px | 段首边距,单位为像素 |
margin-bottom | <length>px | 段落下边距,单位为像素 |
margin-left | <length>px | 段落左边距,单位为像素 |
margin-right | <length>px | 段落右边距,单位为像素 |
padding-top | <length>px | 表格顶部单元格填充,单位为像素 |
padding-bottom | <length>px | 表格单元格底部填充,单位为像素 |
padding-left | <length>px | 表格左侧单元格填充,单位为像素 |
padding-right | <长度>px | 右侧表格单元格填充,单位为像素 |
padding | <length>px | 一次性设置所有 padding 属性的速记。 |
vertical-align | 基线 | 子线 | 超级线 | 中线 | 顶线 | 底线 | 垂直文本对齐方式。对于文本表格单元格的垂直对齐方式,只有中间、顶部和底部适用。 |
border-collapse | 折叠 | 分开 | 文本表格的边框折叠模式。如果设置为折叠,则不会应用单元格间距。 |
border-color | <颜色 | 文本表格和表格单元格的边框颜色。 |
border-top-color | <color | 表格单元格的顶部边框颜色。 |
border-bottom-color | <color> 表格单元格的下边框颜色。 | 表格单元格的下边框颜色。 |
border-left-color | <color> 表格单元格的左边框颜色。 | 表格单元格的左边框颜色。 |
border-right-color | <color> 表格单元格的右边框颜色。 | 表格单元格的右边框颜色。 |
border-style | 无 | 点 | 虚线 | 点-虚线 | 点-点-虚线 | 实线 | 双线 | 凹槽 | 棱线 | 内嵌 | 外移 | 文本表格和表格单元格的边框样式。 |
border-top-style | < 边框样式 | 表格单元格的顶部边框样式。 |
border-bottom-style | <border-style> 表格单元格的下边框样式。 | 表格单元格的下边框样式。 |
border-left-style | <border-style> 表格单元格的左边框样式。 | 表格单元格的左边框样式。 |
border-right-style | <border-style> 表格单元格的右边框样式。 | 表格单元格的右边框样式。 |
border-width | <width>px | 表格或单元格边框的宽度 |
border-top-width | <length>px | 表格单元格的顶部边框宽度。 |
border-bottom-width | <length>px | 表格单元格的下边框宽度。 |
border-left-width | <length>px | 表格单元格的左边框宽度。 |
border-right-width | <length>px | 表格单元格的右边框宽度。 |
border-top | <width>px <边框样式> <边框颜色 | 设置顶部边框宽度、样式和颜色的速记符号 |
border-bottom | <width>px <边框样式> <边框颜色 | 用于设置下边框宽度、样式和颜色的速记符号 |
border-left | <width>px <边框样式> <边框颜色 | 用于设置左边框宽度、样式和颜色的速记符号 |
border-right | <width>px <边框样式> <边框颜色 | 用于设置右边框宽度、样式和颜色的速记符号 |
border-top | <width>px <边框样式> <边框颜色 | 用于设置上边框宽度、样式和颜色的速记符号 |
border-bottom | <width>px <边框样式> <边框颜色 | 用于设置下边框宽度、样式和颜色的速记符号 |
border | <width>px <边框样式> <边框颜色 | 设置所有四个边框的宽度、样式和颜色的速记方法 |
background | [ <'background-color'> || <'background-image'> ] | 背景速记属性 |
page-break-before | [ 自动 | 始终 ] | 使在段落/表格前强制分页成为可能 |
page-break-after | [ 自动 | 始终 ] | 在段落/表格后强制分页 |
float | [左 | 右 | 无] | 指定图片或文本在其他元素中的位置。请注意,float 属性仅支持表格和图像。 |
text-transform | [ 大写 | 小写 ] | 选择文本显示前的转换。 |
font-kerning | [ 正常 | 无 ] | 启用或禁用文本字符之间的分隔。 |
font-variant | 小大写 | 在显示文本前对文本执行小大写变换。 |
word-spacing | <width>px | 指定每个单词之间的间距。 |
line-height | <number>[% | px | pt | cm] | 指定行的高度。它可以是下列值之一:
|
注意: 某些 CSS 属性只有在应用于块标记(如<p>
)时才受支持。例如,在<span>
上设置这些属性不会有任何效果。margin 就是此类属性的一个例子。有关QTextDocument 中块和跨度上可用的格式化选项概览,请参阅QTextBlockFormat 和QTextCharFormat 。
特定于 Qt 的 CSS 属性
除了前面列出的标准 CSS 属性外,以下特定于 Qt 的属性也可用于设置文本块的样式:
属性 | 值 | 说明 |
---|---|---|
-qt-block-indent | <number> | 按指定的空格数缩进文本块。 |
-qt-list-indent | <number> | 按指定的空格数缩进列表项。 |
-qt-list-number-prefix | <string> | 在 HTML 有序列表中将给定字符串作为列表编号的前缀。 |
-qt-list-number-suffix | <string> 字符串 | 在 HTML 排序列表中给列表编号加上给定字符串的后缀。 |
-qt-paragraph-type | empty | 隐藏文本块。 |
-qt-table-type | root | frame | root 将文本块显示为无边框和缩进的内联文本块,而 则将其显示为有边框的新行。frame |
-qt-user-state | <number> | 为文本块添加用户数据。 |
支持的 CSS 选择器
除伪类选择器(如:first-child
、:visited
和:hover
)外,支持所有 CSS 2.1 选择器类。
© 2025 The Qt Company Ltd. 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.