支持的HTML子集

Qt的文本小部件能够显示富文本,这些富文本是通过使用HTML 4标记语言的一个子集来指定的。使用QTextDocument的小部件,例如QLabelQTextEdit,能够以这种方式显示富文本。

在文本小部件中使用HTML标记

小部件会自动检测HTML标记并相应地显示富文本。例如,将标签的text属性设置为字符串"<b>Hello</b> <i>Qt!</i>"将会导致标签显示类似这样的文本:Hello Qt!

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

支持的标签

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

注意:以下标签中实现的函数是一个HTML 4完整的子集。并非所有属性都被支持,请参见每个标签的注释。

标签描述注释
a锚点或链接支持hrefname属性。
address地址
b粗体
big增大字体
blockquote缩进段落
body文档主体支持bgcolor属性,可以是Qt的颜色名称#RRGGBB颜色规格
br换行
center居中文本
cite内联引用i相同。
code代码tt相同。
dd定义数据
dfn定义i相同。
div文档分区支持标准block attributes
dl定义列表支持标准block attributes
dt定义术语支持标准block attributes
em强调i相同。
font字体大小、家族和/或颜色支持以下属性:sizefacecolor(Qt的颜色名称#RRGGBB)。
h11级标题支持标准block attributes
h22级标题支持标准block attributes
h33级标题支持标准block attributes
h44级标题支持标准block attributes
h55级标题支持标准block attributes
h66级标题支持标准block attributes
head文档标题
hr水平线支持width属性,可以指定为绝对值或相对值(%)。
htmlHTML文档
i斜体
img图片支持srcsource(为Qt 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分组元素
strong强调b相同。
sub下标
sup上标
table表格支持以下属性:borderbgcolor(Qt 颜色名称#RRGGBB)、cellspacingcellpaddingwidth(绝对值或相对值)和height
tbody表格主体什么都不做。
td表格数据单元格支持标准的表格单元格属性
tfoot表格页脚什么都不做。
th表格表头单元格支持标准的表格单元格属性
thead表格表头如果指定了thead标签,当打印跨越多页的表格时将使用它。
title文档标题title标签中指定的值可通过QTextDocument::metaInformation获取。
tr表格行支持bgcolor属性,可以是Qt的颜色名称#RRGGBB颜色规格
tt打字机字体
u下划线
ul无序列表支持标准的列表属性
var变量i相同。

块属性

以下属性由divdldth1h2h3h4h5h6p标签支持

  • alignleftrightcenterjustify
  • dirltrrtl

列表属性

以下属性由olul标签支持

  • type1aAsquaredisccircle

表格单元格属性

以下属性由 tdth 标签支持

  • width(绝对值、相对值或无值)
  • bgcolor(Qt 颜色名称#RRGGBB
  • colspan
  • rowspan
  • alignleftrightcenterjustify
  • valigntopmiddlebottom

CSS 属性

以下表格列出了 Qt 的 富文本 引擎支持的 CSS 属性

属性描述
background-color<颜色>元素的背景颜色
background-image<uri>元素的背景图像
color<颜色>文字前景颜色
font-family<family name>字体名称
font-size[ 小 | 中 | 大 | 特大 | 超大 ] | <size>pt | <size>px相对于文档字体的大小,或以点或像素指定
font-style[ 正常 | 斜体 | 倾斜 ]
font-weight[ 正常 | 加粗 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 ]指定用于文本的字体粗细,其中 normalbold 对应于相应的 QFont 粗细。数值是等效的 QFont 粗细值的 8 倍。
text-decorationnone | [ 下划线 || 上划线 || 删除线 ]附加文本效果
font[ [ <'font-style'> || <'font-weight'> ]? <'font-size'> <'font-family'> ]字体简写属性
text-indent<length>px首行文本缩进(以像素为单位)
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<length>px表格单元格右边距(以像素为单位)
padding<length>px同时设置全部填充属性的简写。
vertical-alignbaseline | sub | super | middle | top | bottom垂直文本对齐。仅对文本表格单元格的中间、顶部和底部适用。
border-collapsecollapse | separate文本表格的边框折叠模式。如果设置为 collapse,则不应用单元格间距。
border-color<颜色>文本表格和表格单元格的边框颜色。
border-top-color<颜色>表格单元格的顶部边框颜色。
border-bottom-color<颜色>表格单元格的底部边框颜色。
border-left-color<颜色>表格单元格的左边框颜色。
border-right-color<颜色>表格单元格的右边框颜色。
border-stylenone | dotted | dashed | dot-dash | dot-dot-dash | solid | double | groove | ridge | inset | outset文本表格和表格单元格的边框样式。
border-top-style<border-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-style> <border-color>设置顶部边框宽度、样式和颜色的缩写
border-bottom<width>px <border-style> <border-color>设置底部边框宽度、样式和颜色的缩写
border-left<width>px <border-style> <border-color>设置左边框宽度、样式和颜色的缩写
border-right<width>px <border-style> <border-color>设置右边框宽度、样式和颜色的缩写
border-top<width>px <border-style> <border-color>设置顶部边框宽度、样式和颜色的缩写
border-bottom<width>px <border-style> <border-color>设置底部边框宽度、样式和颜色的缩写
border<width>px <border-style> <border-color>设置所有四条边框的宽度、样式和颜色的缩写
background[ <'background-color'> || <'background-image'> ]背景缩写属性
page-break-before[ auto | always ]在段落/表格之前强制分页
page-break-after[ auto | always ]在段落/表格之后强制分页
float[ left | right | none ]指定图像或文本在另一个元素中的位置。请注意,float 属性仅支持表格和图像。
text-transform[ uppercase | lowercase ]选择在显示文本之前将执行的转换。
font-kerning[ normal | none ]启用或禁用文本字符之间的间距调整。
font-variantsmall-caps在显示文本之前对文本执行小写字母转换。
word-spacing<width>px指定每个词之间的间隔交替。
line-height<number>[% | px | pt | cm]指定行的长度。可以是以下之一
  • 在像素、点或厘米中定义的固定行高。
  • 当前字体大小的百分比。

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选择器

支持所有CSS 2.1选择器类,但不支持伪类选择器,如 :first-child:visited:hover

© 2024 Qt公司。此处包含的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会的《GNU自由文档许可协议第1.3版》许可的,由自由软件基金会发布。Qt及其相关标志是芬兰的Qt公司和/或其他国家的注册商标。所有其他商标均为各自所有者的财产。