如何在同时按下 button1 或 button2 的同时保持 运行 功能,以便我可以在最后获得 self.k 的值?

How can I keep running the function while pressing at the same time button1 or button2 so i can have at the end a value for self.k?

我想保留 运行 一个函数(命名函数),同时多次单击 button1 或 button2 以执行 if 语句并向 self.k 添加一个值。它通常在 python 中不起作用,当我们使用 input() 代码停止并等待用户输入输入但在 Kivy 中,我不知道类似的东西。

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.button import Button
class example(App):
    def build(self):
        self.window = GridLayout()
        self.window.cols = 1
        self.ques1 = "Click yes or no"
        self.begin = Label(text=self.ques1)
        self.window.add_widget(self.begin)
        self.window2 = GridLayout()
        self.window2.cols = 2
        self.window.add_widget(self.window2)
        self.button1 = Button(text="yes")
        self.window2.add_widget(self.button1)
        self.button1.bind(on_press=self.yes)
        self.button2 = Button(text="no")
        self.window2.add_widget(self.button2)
        self.button2.bind(on_press=self.no)
        #self.function(True)
        return self.window

    def yes(self, instance):
        self.ques1 = "yes"

    def no(self, instance):
        self.ques1 = "no"

    def function(self, instance):
        if self.ques1 == "yes":
            self.ques1 = "are you sure?"
            self.begin.text = self.ques1
            if self.ques1 == "yes":
                self.k = 2
            elif self.ques1 == "no":
                self.k = 1

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

好的,我明白了,你可以在yes()no()的末尾调用方法function()来实现。

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.button import Button


class example(App):
    question2 = False

    def build(self):
        self.window = GridLayout()
        self.window.cols = 1
        self.ques1 = "Click yes or no"
        self.begin = Label(text=self.ques1)
        self.window.add_widget(self.begin)
        self.window2 = GridLayout()
        self.window2.cols = 2
        self.window.add_widget(self.window2)
        self.button1 = Button(text="yes")
        self.window2.add_widget(self.button1)
        self.button1.bind(on_press=self.yes)
        self.button2 = Button(text="no")
        self.window2.add_widget(self.button2)
        self.button2.bind(on_press=self.no)
        # self.function(True)
        return self.window

    def yes(self, instance):
        self.ques1 = "yes"
        self.function(instance)

    def no(self, instance):
        self.ques1 = "no"
        self.function(instance)

    def function(self, instance):
        if self.ques1 == "yes" and not self.question2:
            self.begin.text = "Are you sure?"
            self.question2 = True
        elif self.ques1 == "yes" and self.question2:
            self.k = 2
            print(self.k)
        elif self.ques1 == "no" and self.question2:
            self.k = 1
            print(self.k)


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

如果我对你的问题的解释正确,请告诉我。