支持的HTML子集#

描述文本小部件中HTML标记的支持。

Qt的文本小部件能够显示使用HTML 4标记子集指定的富文本。使用QTextDocument(如QLabel和QTextEdit)的小部件能够显示以这种方式指定的富文本。

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

小部件会自动检测HTML标记并相应地显示富文本。例如,设置标签的文本属性为字符串"<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

文档划分

支持标准块属性

dl

定义列表

支持标准块属性

dt

定义项

支持标准块属性

em

强调

i相同。

font

字体大小、家族和/或颜色

支持以下属性:sizefacecolor(Qt color names#RRGGBB)。

h1

一级标题

支持标准块属性

h2

二级标题

支持标准块属性

h3

三级标题

支持标准块属性

h4

四级标题

支持标准块属性

h5

五级标题

支持标准块属性

h6

六级标题

支持标准块属性

head

文档标题

hr

水平线

支持 width 属性,可以是绝对值或相对值(%)。

html

HTML 文档

i

斜体

img

图片

支持 srcsource(用于 Qt 3 兼容)、widthheight 属性。

kbd

用户输入文本

meta

元信息

如果使用 meta 标签指定文本编码,它将被 Qt::codecForHtml() 捕获。同样,如果向 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

表格

支持以下属性:borderbgcolor(Qt color names#RRGGBB)、cellspacingcellpaddingwidth(绝对值或相对值)和 height

tbody

表格主体

不执行任何操作。

td

表格数据单元格

支持标准 表格单元格属性

tfoot

表格页脚

不执行任何操作。

th

表格表头单元格

支持标准 表格单元格属性

thead

表格表头

如果指定了 thead 标签,则在打印跨越多页的表格时使用该标签。

标题

文档标题

使用 title 标签指定的值可通过 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

[ 小 | 中 | 大 | 很大 | 超大 ] | <大小>pt | <大小>px

相对于文档字体的大小,或指定为点或像素

font-style

文本样式 | 斜体 | 斜体

字体粗细度

[ 正常 | 加粗 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 ]

指定文本使用的字体粗细,其中 normalbold 对应于相应的 QFont 粗细。数字值是等价于 QFont 粗细的 8 倍。

文本修饰

none | [下划线 || 上划线 || 删除线 ]

附加文本效果

font

[ [ <’font-style’> || <’font-weight’> ]? <’font-size’> <’font-family’> ]

字体简写属性

首行缩进

<长度>px

首行文本缩进像素值

空白处理

normal | pre | nowrap | pre-wrap

声明HTML中空白如何处理。

上边距

<长度>px

段落顶部边距像素值

下边距

<长度>px

段落底部边距像素值

左边距

<长度>px

段落左边距像素值

右边距

<长度>px

段落右边距像素值

上边距

<长度>px

表格单元格顶部边距像素值

下边距

<长度>px

表格单元格底部边距像素值

左边距

<长度>px

表格单元格左边距像素值

右边距

<长度>px

表格单元格右边距像素值

填充

<长度>px

同时设置所有填充属性的简写。

垂直对齐

baseline | sub | super | middle | top | bottom

垂直文本对齐。对于文本表格中的垂直对齐,只有 middle、top 和 bottom 适用于。

边框合并

collapse | separate

文本表格的边框合并模式。如果设置为 collapse,则不应用单元格间距。

边框颜色

<颜色>

文本表格和表格单元的边框颜色。

边框顶部颜色

<颜色>

表格单元顶部边框颜色。

边框底部颜色

<颜色>

表格单元格底部边框颜色。

边框左边颜色

<颜色>

表格单元格左边边框颜色。

边框右边颜色

<颜色>

表格单元格右边边框颜色。

边框样式

none | dotted | dashed | dot-dash | dot-dot-dash | solid | double | groove | ridge | inset | outset

文本表格和表格单元的边框样式。

边框顶部样式

<border-style>

表格单元顶部边框样式。

边框底部样式

<border-style>

表格单元格底部边框样式。

边框左边样式

<border-style>

表格单元格左边边框样式。

边框右边样式

<border-style>

表格单元格右边边框样式。

边框宽度

<width>px

表格或单元格边框的宽度

边框顶部宽度

<长度>px

表格单元顶部边框宽度。

边框底部宽度

<长度>px

表格单元格底部边框宽度。

边框左边宽度

<长度>px

表格单元格左边边框宽度。

边框右边宽度

<长度>px

表格单元格右边边框宽度。

边框顶部

<width>px <border-style> <border-color>

设置顶部边框宽度、样式和颜色的简写

边框底部

<width>px <border-style> <border-color>

设置底部边框宽度、样式和颜色的简写

边框左边

<width>px <border-style> <border-color>

设置左边框宽度、样式和颜色的简写

边框右边

<width>px <border-style> <border-color>

设置右边框宽度、样式和颜色的简写

边框顶部

<width>px <border-style> <border-color>

设置顶部边框宽度、样式和颜色的简写

边框底部

<width>px <border-style> <border-color>

设置底部边框宽度、样式和颜色的简写

边框

<width>px <border-style> <border-color>

同时设置四个边框的宽度、样式和颜色的简写

背景

[ <’background-color’> || <’background-image’> ]

背景简写属性

页面换行前

[ auto | always ]

使段落/表格前面可以使用分页。

page-break-after

[ auto | always ]

使段落/表格后面强制换页。

float

[ left | right | none ]

指定图片或文本将放在另一个元素中的位置。注意,仅支持表格和图片使用 float 属性。

text-transform

[ uppercase | lowercase ]

选择在显示前对文本执行哪种转换。

font-kerning

[ normal | none ]

启用或禁用文字字符间的字距调整。

font-variant

small-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-type

empty

隐藏文本块。

-qt-table-type

root | frame

root 在不添加边框和缩进的情况下内联渲染文本块,而 frame 在新的一行上带有边框进行渲染。

-qt-user-state

<number>

将其添加为文本块的用户数据。

支持CSS选择器#

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