支持的 HTML 子集

Qt 的文本窗口小部件能显示使用HTML 4标记子集指定的富文本。使用QTextDocument 的部件(如QLabelQTextEdit )可以显示以这种方式指定的富文本。

在文本小工具中使用 HTML 标记

小工具会自动检测 HTML 标记,并相应地显示富文本。例如,用字符串"<b>Hello</b> <i>Qt!</i>" 设置标签的text 属性,标签就会显示如下文本:Hello Qt!

当文本使用 HTML 标记时,Qt 会遵循HTML 4规范定义的规则。这包括文本布局的默认属性,如文本流的方向(从左到右),可通过对文本块应用 dir属性对文本块进行更改。

支持的标记

下表列出了 Qt富文本引擎支持的 HTML 标签。

注意: 下面列出的标签实现的功能是完整 HTML 4 规范的子集。并非所有属性都受支持,请参阅每个标签的注释。

标签描述注释
a锚点或链接支持hrefname 属性。
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三级标题支持标准块属性
h44 级标题支持标准块属性
h55 级标题支持标准块属性
h66 级标题支持标准块属性
head文件标题
hr水平线支持width 属性,可指定为绝对值或相对值 (%)。
htmlHTML 文档
i斜体
img图像支持srcsource (兼容 Qt XML 3)、widthheight 属性。
kbd用户输入的文本
meta元信息如果使用meta 标签指定了文本编码,Qt::codecForHtml() 将接收该编码。同样,如果在QTextDocument::toHtml() 中指定了编码,则编码会通过meta 标签等存储:<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
li列表项
nobr不可断开文本
ol有序列表支持标准列表属性
p段落默认为左对齐。支持标准块属性
pre预格式文本
qtQt 富文本文档html 的同义词。为与 Qt 早期版本兼容而提供。
s删除线
samp示例代码tt 相同。
small小字体
span分组元素
strongb 相同。
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 颜色规范。
ttTypewrite 字体
u下划线
ul无序列表支持标准列表属性
var变量i 相同。

块属性

div,dl,dt,h1,h2,h3,h4,h5,h6,p 标签支持以下属性:

  • align ( , , , )left right center justify
  • dir ( , )ltr rtl

列表属性

olul 标记支持以下属性:

  • type ( , , , , , )1 a A square disc circle

表格单元格属性

tdth 标签支持以下属性:

  • 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 ]。指定文本使用的字体权重,其中normalbold 映射到相应的QFont 权重。数值是QFont 权重值的 8 倍。
text-decoration无 | [ 下划线 || 上划线 || 穿行 ]附加文本效果
font[ [ <'font-style'> || <'font-weight'> ]? <'font-size'> <'font-family'> ]。字体速记属性
text-indent<长度>像素首行文字缩进(以像素为单位
white-spacenormal | 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 中块和跨度上可用的格式化选项概览,请参阅QTextBlockFormatQTextCharFormat

特定于 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-typeempty隐藏文本块。
-qt-table-typeroot | frameroot 将文本块显示为无边框和缩进的内联文本块,而 则将其显示为有边框的新行。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.