如何在同时按下 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()
如果我对你的问题的解释正确,请告诉我。
我想保留 运行 一个函数(命名函数),同时多次单击 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()
如果我对你的问题的解释正确,请告诉我。