目录
文本标记¶
在 1.1.0 版本加入.
在 1.10.1 版本发生变更: 添加了 font_context、font_features 和 `text_language`(仅限 Pango)
我们提供了一种简单的文本标记,用于内联文本样式。其语法与`BBCode <http://en.wikipedia.org/wiki/BBCode>`_相似。
标签定义为 [tag],并应有对应的 [/tag] 闭合标签。例如:
[b]Hello [color=ff0000]world[/color][/b]
可用的标签如下:
[b][/b]激活粗体文本
[i][/i]激活斜体文本
[u][/u]带下划线的文本
[s][/s]删除线文本
[font=<str>][/font]更改字体(注意:此处指的是TTF文件或已注册的别名)
[font_context=<str>][/font_context]更改字体的上下文,使用字符串值"none"表示隔离上下文。
[font_family=<str>][/font_family]用于绘制时请求的字体族。这仅在字体上下文(font context)下有效,并优先于 [font]。详情请参阅
kivy.uix.label.Label。[font_features=<str>][/font_features]OpenType字体特性,以CSS格式表示,此内容直接传递给Pango。请求特定特性的效果取决于加载的字体、库版本等。仅限Pango,需v1.38或更高版本。
[size=<size>][/size]更改字体大小。<size>应为整数,可附带单位(如``16sp``)。
[color=#<color>][/color]修改文本颜色
[ref=<str>][/ref]添加一个交互区域。该引用及其内部的所有单词框将在
MarkupLabel.refs中可用。[anchor=<str>]在文本中放置一个锚点。您可以通过
MarkupLabel.anchors获取锚点在文本中的位置。[sub][/sub]将文本显示在其前一个文本的下标位置。
[sup][/sup]将文本显示为相对于其前文本的上标位置。
[text_language=<str>][/text_language]文本的语言,这是一个RFC-3066格式的语言标签(作为字符串),例如“en_US”、“zh_CN”、“fr”或“ja”。这会影响字体选择、度量和渲染。例如,相同的文本字节在`ur`和`ar`语言中可能看起来不同,尽管两者都使用阿拉伯文字。使用字符串`'none'`可恢复为区域设置检测。仅限Pango。
如果你需要从当前文本中转义标记,请使用 kivy.utils.escape_markup()。
- class kivy.core.text.markup.MarkupLabel(*largs, **kwargs)[源代码]¶
基类:
LabelBase标记文本标签。
更多信息请参阅模块文档。
- property anchors¶
获取所有
[anchor=...]的位置:{ 'anchorA': (x, y), 'anchorB': (x, y), ... }
- property markup¶
返回所有标记分割后的文本:
>>> MarkupLabel('[b]Hello world[/b]').markup >>> ('[b]', 'Hello world', '[/b]')
- property refs¶
获取所有``[ref=...]``的边界框::
{ 'refA': ((x1, y1, x2, y2), (x1, y1, x2, y2)), ... }
- shorten_post(lines, w, h, margin=2)[源代码]¶
根据标签选项将文本缩短为单行。
该函数作用于已经布局好的文本,因为在标记中,文本的不同部分可能具有不同的大小和选项。
如果
text_size[0] 为 None,则返回的行保持不变。否则,这些行会被转换为适合受限宽度text_size[0] 的单行。- 参数:
lines:描述文本的 LayoutLine 实例列表。w:整数,文本在行中的宽度,包括内边距。h:整数,文本在行中的高度,包括内边距。margin:整数,在两侧额外留出的空间。这是在
padding_x之外增加的。- 返回:
返回一个三元组 (xw, h, lines),其中 w 和 h 与输入类似,包含文本的最终宽度和高度(包括内边距)。lines 是一个列表,包含一个 LayoutLine 对象,该对象包含该行的单词。