工具类

Utils 模块提供了一系列通用工具函数和类,这些可能对各种应用场景有所帮助。其中包括数学、颜色、代数以及平台相关的功能。

在 1.6.0 版本发生变更: OrderedDict 类已被移除。请改用 collections.OrderedDict。

class kivy.utils.QueryDict[源代码]

基类:dict

QueryDict 是一个可以使用点号进行查询的 dict()。

d = QueryDict()
# create a key named toto, with the value 1
d.toto = 1
# it's the same as
d['toto'] = 1

在 1.0.4 版本加入.

class kivy.utils.SafeList(*args, **kwargs)[源代码]

基类:list

带有 clear() 方法的列表。

警告

使用iterate()函数会降低你的性能。

clear()[源代码]

从列表中移除所有项目。

kivy.utils.boundary(value, minvalue, maxvalue)[源代码]

将值限制在最小值和最大值之间。

kivy.utils.deprecated(func=None, msg='')[源代码]

这是一个装饰器,用于将函数标记为已弃用。它会在函数首次被使用时发出警告。

kivy.utils.difference(set1, set2)[源代码]

返回两个列表之间的差异。

kivy.utils.escape_markup(text)[源代码]

转义文本中发现的标记字符。此方法旨在当Label上启用了标记文本时使用。

untrusted_text = escape_markup('Look at the example [1]')
text = '[color=ff0000]' + untrusted_text + '[/color]'
w = Label(text=text, markup=True)

在 1.3.0 版本加入.

kivy.utils.format_bytes_to_human(size, precision=2)[源代码]

将字节值格式化为人类可读的表示形式(B、KB、MB...)。

在 1.0.8 版本加入.

参数:
size:整数

表示字节值的数字。

precision:整数,默认值为2

逗号后的精度

示例::

>>> format_bytes_to_human(6463)
'6.31 KB'
>>> format_bytes_to_human(646368746541)
'601.98 GB'
kivy.utils.get_color_from_hex(s)[源代码]

将十六进制字符串颜色转换为kivy的:class:~kivy.graphics.Color

kivy.utils.get_hex_from_color(color)[源代码]

将kivy的:class:`~kivy.graphics.Color`转换为十六进制值:

>>> get_hex_from_color((0, 1, 0))
'#00ff00'
>>> get_hex_from_color((.25, .77, .90, .5))
'#3fc4e57f'

在 1.5.0 版本加入.

kivy.utils.get_random_color(alpha=1.0)[源代码]

返回一个随机颜色(4元组)。

参数:
alpha:浮点数,默认值为 1.0

如果 alpha == 'random',则会生成一个随机的 alpha 值。

kivy.utils.interpolate(value_from, value_to, step=10)[源代码]

通过提供两点之间比例的倒数,在两个值之间进行插值。

自 2.3.0 版本弃用: 对于动画,可考虑使用 AnimationTransition.linear() 以达到类似目的。

警告

这些插值仅适用于维度相同的列表/元组/双精度数。不会进行任何测试来检查维度是否相同。

kivy.utils.intersection(set1, set2)[源代码]

返回两个列表的交集。

kivy.utils.is_color_transparent(c)[源代码]

如果 alpha 通道为 0,则返回 True。

kivy.utils.platform = 'linux'

一个标识当前操作系统的字符串。其值可能为:'win''linux''android''macosx''ios''unknown'。您可以按如下方式使用它:

from kivy.utils import platform
if platform == 'linux':
    do_linux_things()

在 1.3.0 版本加入.

在 1.8.0 版本发生变更: platform 现在是一个变量,而不是函数。

class kivy.utils.reify(func)[源代码]

基类:object

在首次调用后,将使用此(非数据)描述符装饰器的方法结果存入实例字典中,从而有效地用实例变量替换该装饰器。

它的行为类似于@property,但该函数只会被调用一次;之后,该值会作为常规属性被缓存。这为那些设计为不可变的对象提供了惰性属性创建的功能。

取自 Pyramid 项目

要将其用作装饰器:

@reify
def lazy(self):
     ...
     return hard_to_compute_int
first_time = self.lazy   # lazy is reify obj, reify.__get__() runs
second_time = self.lazy  # lazy is hard_to_compute_int
kivy.utils.rgba(s, *args)[源代码]

从十六进制字符串或0-255值列表中返回一个Kivy颜色(0-1范围内的4个值)。

在 1.10.0 版本加入.

kivy.utils.strtotuple(s)[源代码]

将元组字符串转换为元组,并附带一些安全检查。设计用于与eval()函数配合使用:

a = (12, 54, 68)
b = str(a)         # return '(12, 54, 68)'
c = strtotuple(b)  # return (12, 54, 68)