我刚刚学习了Kivy在用Python创建东西时的一些UI选项。我现在正在绞尽脑汁的是循环,以及如何让它们与Kivy一起工作
下面的示例是一个非常简单的循环,它应该将每个数字打印到一个Kivy标签上(替换以前的)
目前,当按下按钮时,我只得到屏幕上的最后一个数字,因为整个功能完全运行-这是有意义的。但我的问题是如何设置按钮,以便在按下按钮时,它只运行循环的一次迭代
My.py文件:
from kivy.app import App
from kivy.core.window import Window
from kivy.lang import Builder
from kivy.uix.widget import Widget
Window.size=(300,300)
Builder.load_file('loop.kv')
class MyLayout(Widget):
def loop(self):
for i in range(10):
self.ids.label_print.text = str(i)
pass
class LoopApp(App):
def build(self):
return MyLayout()
if __name__=='__main__':
LoopApp().run()
我的.kv文件:
<MyLayout>
BoxLayout:
orientation: 'vertical'
size: root.height, root.width
Label:
id: label_print
font_size: 32
Button:
text: 'Loop'
on_press: root.loop()
目前,结果只显示9,我希望从0开始,每次按下按钮都添加1:
基本上,您的循环工作正常,但立即发生,因此您只能看到9,而不能看到序列或任何内容。您可以使用
kivy.clock
为回调函数安排一个间隔,指定间隔时间并在某个点停止该计划。如果您想跳过kivy.clock部分,您的GUI将被冻结,直到函数完成。例如:相关问题 更多 >
编程相关推荐