开关

在 1.0.7 版本加入.

_images/switch-on.jpg _images/switch-off.jpg

Switch 控件类似于机械电灯开关,具有激活或未激活两种状态。用户可以通过向左/向右滑动来激活或停用它:

switch = Switch(active=True)

要附加一个监听激活状态的回调函数:

def callback(instance, value):
    print('the switch', instance, 'is', value)

switch = Switch()
switch.bind(active=callback)

默认情况下,控件的表示是静态的。所需的最小尺寸为83x32像素(由背景图像定义)。图像在控件内居中显示。

整个控件都是激活的,不仅仅是带有图形的部分。只要你在控件的边界框内滑动,它就会生效。

备注

如果你希望通过单次触摸而非滑动来控制状态,请改用 ToggleButton

Kv 示例:

BoxLayout:
    Label:
        text: 'power up'
    Switch:
        id: switch
    Label:
        text: 'woooooooooooh' if switch.active else ''
class kivy.uix.switch.Switch(**kwargs)[源代码]

基类:Widget

Switch 类。更多信息请参阅模块文档。

active

指示开关是处于激活状态还是非激活状态。

active 是一个 BooleanProperty,默认值为 False。

active_norm_pos

(内部)包含开关内可移动元素的归一化位置,范围在0-1之间。

active_norm_pos 是一个 NumericProperty,默认值为 0。

on_touch_down(touch)[源代码]

接收触摸按下事件。

参数:
touchMotionEvent

收到触摸事件。该触摸位于父级坐标系中。关于坐标系统的讨论,请参阅 relativelayout

返回:

bool 如果为 True,触摸事件的派发将停止。如果为 False,事件将继续派发给控件树中的其余部分。

on_touch_move(touch)[源代码]

接收触摸移动事件。触摸坐标位于父级坐标系中。

更多信息请参阅 on_touch_down()

on_touch_up(touch)[源代码]

接收触摸抬起事件。触摸坐标位于父级坐标系中。

更多信息请参阅 on_touch_down()

touch_control

(内部)包含当前与开关交互的触摸。

touch_control 是一个 ObjectProperty,默认值为 None。

touch_distance

(内部)包含触摸初始位置与当前位置之间的距离,用于判断滑动是从左侧还是右侧发起。

touch_distance 是一个 NumericProperty,默认值为 0。