Выполнить функцию кнопки, не касаясь ее в Kivy? - PullRequest
0 голосов
/ 03 февраля 2019

Я только что поменялся от Ткинтера до Киви.В Tkinter я смог выполнить функцию, связанную с кнопкой, не нажимая кнопку.Я выполнил функцию кнопки с помощью:

    button.invoke()

Я знаю, что можно связать функции в Kivy с помощью on_press:, но возможно ли также выполнить функцию кнопки без фактического нажатия кнопки?

Привет из Германии

1 Ответ

0 голосов
/ 03 февраля 2019

Вы можете использовать trigger_action метод:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button


class TestApp(App):
    def build(self):
        layout = BoxLayout()
        self.b1 = Button(text="Button 1", on_press=self.on_press_button_1)
        self.b2 = Button(text="Button 1", on_press=self.on_press_button_2)
        layout.add_widget(self.b1)
        layout.add_widget(self.b2)
        return layout

    def on_press_button_1(self, *args):
        print("on press button 1")

    def on_press_button_2(self, *args):
        self.b1.trigger_action(0)
        print("on press button 2")


if __name__ == "__main__":
    TestApp().run()
...