目录
- 好的,请发送需要翻译的英文内容。
- 字体上下文管理器
LabelBaseLabelBase.content_heightLabelBase.content_sizeLabelBase.content_widthLabelBase.find_base_direction()LabelBase.fontidLabelBase.get_cached_extents()LabelBase.get_extents()LabelBase.get_system_fonts_dir()LabelBase.labelLabelBase.refresh()LabelBase.register()LabelBase.render()LabelBase.shorten()LabelBase.textLabelBase.text_sizeLabelBase.usersize
好的,请发送需要翻译的英文内容。¶
文本创建的抽象。根据所选后端的不同,文本渲染的精确度可能会有所差异。
在 1.10.1 版本发生变更: 新增了 LabelBase.find_base_direction() 方法。
在 1.5.0 版本发生变更: 新增了 LabelBase.line_height 属性。
在 1.0.7 版本发生变更: :如果文本的宽度小于等于1,LabelBase 不会生成任何纹理。
这是用于通过不同文本提供程序渲染文本的后端层,只有当 Label 无法满足你的需求时,才应直接使用此层。
使用示例:
from kivy.core.text import Label as CoreLabel
...
...
my_label = CoreLabel()
my_label.text = 'hello'
# the label is usually not drawn until needed, so force it to draw.
my_label.refresh()
# Now access the texture of the label and use it wherever and
# however you may please.
hello_texture = my_label.texture
字体上下文管理器¶
字体上下文是一个命名空间,其中加载了多个字体;如果某个字体缺少渲染文本所需的字形,它可以回退到同一上下文中的另一个字体。在使用Pango文本提供程序时(目前没有其他提供程序实现此功能),字体上下文管理器可用于查询和操作字体上下文的状态。
在 1.11.0 版本加入.
警告
此功能需要Pango文本提供程序。
字体上下文可以由 kivy.uix.label.Label 或 kivy.uix.textinput.TextInput 自动创建;如果在这两个类中使用了不存在的上下文,它将被自动创建,或者如果指定了字体文件而没有上下文(这会创建一个独立的上下文,不支持回退)。
使用示例:
from kivy.uix.label import Label
from kivy.core.text import FontContextManager as FCM
# Create a font context containing system fonts + one custom TTF
FCM.create('system://myapp')
family = FCM.add_font('/path/to/file.ttf')
# These are now interchangeable ways to refer to the custom font:
lbl1 = Label(font_context='system://myapp', family_name=family)
lbl2 = Label(font_context='system://myapp', font_name='/path/to/file.ttf')
# You could also refer to a system font by family, since this is a
# system:// font context
lbl3 = Label(font_context='system://myapp', family_name='Arial')
- class kivy.core.text.LabelBase(text='', font_size=12, font_name=None, bold=False, italic=False, underline=False, strikethrough=False, font_family=None, halign='left', valign='bottom', shorten=False, text_size=None, mipmap=False, color=None, line_height=1.0, strip=False, strip_reflow=True, shorten_from='center', split_str=' ', unicode_errors='replace', font_hinting='normal', font_kerning=True, font_blended=True, outline_width=None, outline_color=None, font_context=None, font_features=None, base_direction=None, font_direction='ltr', font_script_name='Latin', text_language=None, limit_render_to_text_bbox=False, **kwargs)[源代码]¶
基类:
object核心文本标签。这是不同后端用于渲染文本的抽象类。
警告
核心文本标签无法在运行时更改。您必须重新创建一个。
- 参数:
- font_size:整数,默认值为12
文本的字体大小
- font_context:字符串,默认为 None
指定字体的上下文(详见
kivy.uix.label.Label)。None 将自动创建一个以解析后的字体文件命名的独立上下文。- font_name:字符串,默认值为 DEFAULT_FONT
文本的字体名称。
- font_family:字符串,默认为 None
用于绘制请求的字体族名称,此选项仅可与 font_context 结合使用。
- bold:布尔值,默认为 False
激活“粗体”文本样式
- italic:布尔值,默认为 False
激活“斜体”文本样式
- text_size:元组,默认为 (None, None)
添加约束以在边界框内渲染文本。若未指定尺寸,标签尺寸将自动设置为文本尺寸。
- padding:int|float 或 list|tuple,默认为 [0, 0, 0, 0]。
文本的填充格式为 [padding_left, padding_top, padding_right, padding_bottom]。
padding应为 int|float 或包含 1、2 或 4 个元素的列表|元组。- padding_x:浮点数,默认值为 0.0
左右内边距
- padding_y:浮点数,默认值为 0.0
顶部/底部内边距
- halign:字符串类型,默认值为"left"
在边界框内的水平文本对齐
- valign:字符串类型,默认值为 "bottom"
边界框内的垂直文本对齐
- shorten:布尔值,默认为 False
指示在给定`size`的情况下,标签是否应尽可能缩短其文本内容。将此设为True而未适当设置尺寸将导致意外结果。
- shorten_from:字符串,默认值为 center
我们应从哪一侧缩短文本,可以是左侧、右侧或中心。例如,如果选择左侧,省略号将出现在左侧,并尽可能多地显示从右侧开始的文本。
- split_str:字符串,默认为 `' '`(空格)
用于缩短文本时按此字符串分割单词。若为空,则可在每个字符后分割,尽可能填满每一行。
- max_lines:整数,默认值为 0(无限制)
如果设置,这表示允许渲染文本的最大行数。仅在设置了text_size限制时生效。
- mipmap:布尔值,默认为 False
为纹理创建mipmap。
- strip:布尔值,默认为 False
每行文本的前导和尾随空格是否被去除。如果 halign 设置为 justify,则此属性隐式为 True。
- strip_reflow: 布尔值,默认为 True
当文本被重排到第二行时,是否应去除空白,即使 strip 为 False。此设置仅在 size_hint_x 不为 None 时生效,因为否则文本行永远不会被拆分。
- unicode_errors:字符串类型,默认值为 'replace'
如何处理Unicode解码错误。可以是`'strict'、'replace'或'ignore'`。
- outline_width:整数,默认为 None
轮廓的宽度(以像素为单位)。
- outline_color:元组,默认值为 (0, 0, 0)
轮廓的颜色。
- font_features: str,默认为 None
OpenType 字体特性(CSS 格式,仅限 Pango)
- base_direction:字符串类型,默认为 None(自动)
文本方向,取值为 None、'ltr'、'rtl'、'weak_ltr' 或 `'weak_rtl'`(仅限 Pango)
- text_language:字符串类型,默认为None(用户区域设置)
RFC-3066 格式的语言标签字符串(仅限 Pango)
- limit_render_to_text_bbox:布尔值,默认为 False。仅适用于 PIL。
如果设置为
True,此参数表示渲染应限制在文本的边界框内,不包括为上升和下降预留的任何额外空白。通过将渲染限制在文本的边界框内,可以确保在使用 valign、y、pos、pos_hint 等属性时,与周围元素的对齐更加精确。
在 2.3.0 版本加入: limit_render_to_text_bbox 被添加用于将文本渲染限制在文本边界框内(仅限 PIL)。
自 2.2.0 版本弃用: padding_x 和 padding_y 已被弃用。请改用 padding。
在 2.2.0 版本发生变更: padding 现在是一个列表,默认值为 [0, 0, 0, 0]。padding 接受 int|float 或包含 1、2 或 4 个元素的列表|元组。
在 1.10.1 版本发生变更: font_context、font_family、font_features、base_direction 和 text_language 已被添加。
在 1.10.0 版本发生变更: outline_width 和 outline_color 已被添加。
在 1.9.0 版本发生变更: 新增了 strip、strip_reflow、shorten_from、split_str 和 unicode_errors 属性。
在 1.9.0 版本发生变更: padding_x 和 padding_y 已修复,现在能按预期工作。过去,文本会按其值的负数进行填充。
在 1.8.0 版本发生变更: 已添加 max_lines 参数。
在 1.0.8 版本发生变更: size 已被弃用,取而代之的是 text_size。
在 1.0.7 版本发生变更: valign 现在已被正确遵循。此前并非如此,因此如果您在应用程序中未考虑这一点,可能会遇到问题。
- property content_height¶
返回内容高度;即文本高度,不含任何内边距。
- property content_size¶
返回内容尺寸(宽度,高度)
- property content_width¶
返回内容宽度;即不含任何内边距的文本宽度。
- static find_base_direction(text)[源代码]¶
根据Unicode双向算法,在字符串中搜索第一个具有强方向性的字符。如果无法确定基本方向,则返回`None`,否则返回`'ltr'或'rtl'`之一。
备注
此功能需要Pango文本提供程序。
- property fontid¶
返回所有字体参数的唯一ID。
- get_cached_extents()[源代码]¶
返回
get_extents()函数的缓存版本。>>> func = self._get_cached_extents() >>> func <built-in method size of pygame.font.Font object at 0x01E45650> >>> func('a line') (36, 18)
警告
该方法返回一个尺寸测量函数,该函数对于调用
get_cached_extents()时使用的字体设置是有效的。字体设置的任何更改都会导致返回的函数不正确。只有在您清楚自己在做什么的情况下,才应使用此方法。在 1.9.0 版本加入.
- property label¶
获取/设置文本。
- static register(name, fn_regular, fn_italic=None, fn_bold=None, fn_bolditalic=None)[源代码]¶
为字体注册一个别名。
在 1.1.0 版本加入.
如果你直接使用ttf文件,可能无法使用该ttf版本的粗体/斜体属性。如果字体以多个文件形式提供(一个常规、一个斜体和一个粗体),那么你需要注册这些文件并使用别名来代替。
所有 fn_regular/fn_italic/fn_bold 参数均通过
kivy.resources.resource_find()解析。如果 fn_italic/fn_bold 为 None,则将使用 fn_regular 替代。
- shorten(text, margin=2)[源代码]¶
通过
text_size[0] 指定的宽度将文本缩短为单行。如果text_size[0] 为 None,则返回未更改的文本。split_str和shorten_from决定了文本如何被缩短。- 参数:
text str,需要缩短的文本。margin int,在边距与文本之间保留的空间量。这是在
padding_x之外额外添加的。- 返回:
文本已缩短为单行以适应显示。
- property text¶
获取/设置文本。
- property text_size¶
获取/设置“约束渲染框”的(宽度,高度)。
- property usersize¶
(已弃用)请改用 text_size。