按钮行为

ButtonBehavior 这个 mixin 类提供了 Button 的行为。你可以将这个类与其他控件(如 Image)结合使用,以创建保留 Kivy 按钮行为的替代按钮。

关于行为的概述,请参阅 behaviors 文档。

示例

以下示例为图像添加按钮行为,以制作一个行为类似按钮的复选框:

from kivy.app import App
from kivy.uix.image import Image
from kivy.uix.behaviors import ButtonBehavior


class MyButton(ButtonBehavior, Image):
    def __init__(self, **kwargs):
        super(MyButton, self).__init__(**kwargs)
        self.source = 'atlas://data/images/defaulttheme/checkbox_off'

    def on_press(self):
        self.source = 'atlas://data/images/defaulttheme/checkbox_on'

    def on_release(self):
        self.source = 'atlas://data/images/defaulttheme/checkbox_off'


class SampleApp(App):
    def build(self):
        return MyButton()


SampleApp().run()

详见 ButtonBehavior

class kivy.uix.behaviors.button.ButtonBehavior(**kwargs)[源代码]

基类:object

这个 mixin 类提供了 Button 的行为。更多信息请参阅 按钮行为模块 的文档。

事件:
on_press

当按钮被按下时触发。

on_release

当按钮被释放时触发(即按下按钮的触摸/点击消失)。

always_release

此属性决定当触摸释放(touch_up)发生在部件外部时,该部件是否触发 on_release 事件。

在 1.9.0 版本加入.

在 1.10.0 版本发生变更: 默认值现在为False。

always_release 是一个 BooleanProperty,默认值为 False

last_touch

包含按钮接收到的最后一个相关触摸。这可以在`on_press`或`on_release`中使用,以了解是哪个触摸触发了该事件。

在 1.8.0 版本加入.

last_touch 是一个 ObjectProperty,默认值为 None

min_state_time

控件必须保持在 'down' 状态的最短时间周期。

在 1.9.1 版本加入.

min_state_time 是一个浮点数,默认值为 0.035。该值取自 Config

state

按钮的状态,必须是'normal'或'down'之一。只有当按钮当前被触摸/点击时,状态为'down',否则为'normal'。

state 是一个 OptionProperty,默认值为 'normal'。

trigger_action(duration=0.1)[源代码]

通过调用on_press和on_release回调,触发已绑定到按钮的任何操作。

这类似于不使用任何触摸事件的快速按钮按下,但请注意,与大多数Kivy代码一样,不能保证从外部线程调用是安全的。如有需要,请使用:class:`Clock <kivy.clock.Clock>`来安全地调度此函数及其产生的回调,确保它们从主线程中被调用。

Duration 是按压持续的时间,单位为秒。若希望操作立即发生,请传入 0。

在 1.8.0 版本加入.