支持的HTML子集
Qt的文本小部件能够显示富文本,这些富文本是通过使用HTML 4标记语言的一个子集来指定的。使用QTextDocument的小部件,例如QLabel和QTextEdit,能够以这种方式显示富文本。
在文本小部件中使用HTML标记
小部件会自动检测HTML标记并相应地显示富文本。例如,将标签的text属性设置为字符串"<b>Hello</b> <i>Qt!</i>"
将会导致标签显示类似这样的文本:Hello Qt!
当使用HTML标记进行文本时,Qt遵循HTML 4规范中定义的规则。这包括文本布局的默认属性,如文本流的方向(从左到右),可以通过给文本块应用dir
属性来改变。
支持的标签
以下表格列出了Qt的富文本引擎支持的HTML标签。
注意:以下标签中实现的函数是一个HTML 4完整的子集。并非所有属性都被支持,请参见每个标签的注释。
标签 | 描述 | 注释 |
---|---|---|
a | 锚点或链接 | 支持href 和name 属性。 |
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 | 字体大小、家族和/或颜色 | 支持以下属性:size 、face 和color (Qt的颜色名称或#RRGGBB )。 |
h1 | 1级标题 | 支持标准block attributes 。 |
h2 | 2级标题 | 支持标准block attributes 。 |
h3 | 3级标题 | 支持标准block attributes 。 |
h4 | 4级标题 | 支持标准block attributes 。 |
h5 | 5级标题 | 支持标准block attributes 。 |
h6 | 6级标题 | 支持标准block attributes 。 |
head | 文档标题 | |
hr | 水平线 | 支持width 属性,可以指定为绝对值或相对值(% )。 |
html | HTML文档 | |
i | 斜体 | |
img | 图片 | 支持src 、source (为Qt 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 颜色名称或#RRGGBB )、cellspacing 、cellpadding 、width (绝对值或相对值)和height 。 |
tbody | 表格主体 | 什么都不做。 |
td | 表格数据单元格 | 支持标准的表格单元格属性。 |
tfoot | 表格页脚 | 什么都不做。 |
th | 表格表头单元格 | 支持标准的表格单元格属性。 |
thead | 表格表头 | 如果指定了thead 标签,当打印跨越多页的表格时将使用它。 |
title | 文档标题 | title 标签中指定的值可通过QTextDocument::metaInformation获取。 |
tr | 表格行 | 支持bgcolor 属性,可以是Qt的颜色名称或#RRGGBB 颜色规格。 |
tt | 打字机字体 | |
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 颜色名称 或#RRGGBB
)colspan
rowspan
align
(left
、right
、center
、justify
)valign
(top
、middle
、bottom
)
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 ] | 指定用于文本的字体粗细,其中 normal 和 bold 对应于相应的 QFont 粗细。数值是等效的 QFont 粗细值的 8 倍。 |
text-decoration | none | [ 下划线 || 上划线 || 删除线 ] | 附加文本效果 |
font | [ [ <'font-style'> || <'font-weight'> ]? <'font-size'> <'font-family'> ] | 字体简写属性 |
text-indent | <length>px | 首行文本缩进(以像素为单位) |
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 | <length>px | 表格单元格右边距(以像素为单位) |
padding | <length>px | 同时设置全部填充属性的简写。 |
vertical-align | baseline | sub | super | middle | top | bottom | 垂直文本对齐。仅对文本表格单元格的中间、顶部和底部适用。 |
border-collapse | collapse | separate | 文本表格的边框折叠模式。如果设置为 collapse,则不应用单元格间距。 |
border-color | <颜色> | 文本表格和表格单元格的边框颜色。 |
border-top-color | <颜色> | 表格单元格的顶部边框颜色。 |
border-bottom-color | <颜色> | 表格单元格的底部边框颜色。 |
border-left-color | <颜色> | 表格单元格的左边框颜色。 |
border-right-color | <颜色> | 表格单元格的右边框颜色。 |
border-style | none | 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-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
。
© 2024 Qt公司。此处包含的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会的《GNU自由文档许可协议第1.3版》许可的,由自由软件基金会发布。Qt及其相关标志是芬兰的Qt公司和/或其他国家的注册商标。所有其他商标均为各自所有者的财产。