【发布时间】:2019-08-26 21:37:39
【问题描述】:
我创建了一个基于循环函数的程序。每次循环时,我都想更新屏幕中的两个标签。问题是我使用一个按钮来调用该函数,并且在函数停止执行之前它不会更新标签。以免我有一个标签,我调用一个从 0 到无穷大的循环函数。我希望标签在每个数字中都更新。这可能吗?
编辑:使用 Clock.schedule_interval(function, time) (time in seconds) 解决的问题只是一个简单的应用程序,每秒添加一个数字并将其显示到屏幕上
代码:
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout
from kivy.clock import Clock
from time import sleep
class Window(GridLayout):
def __init__(self, **kwargs):
super(Window, self).__init__(**kwargs)
self.cols = 1
self.cnt = 0
self.btn = Button(text='Start')
self.add_widget(self.btn)
self.btn.bind(on_press=self.pressed)
self.lbl = Label()
self.add_widget(self.lbl)
def starting(self, instance):
self.lbl.text = str(self.cnt)
self.cnt += 1
sleep(1)
def pressed(self, instance):
Clock.schedule_interval(self.starting, 0)
class MainApp(App):
def build(self):
return Window()
if __name__ == '__main__':
MainApp().run()
【问题讨论】:
-
发布代码..
-
到目前为止你做了什么?你的尝试出了什么问题?请参阅此链接了解如何创建minimal reproducible example
标签: python function loops kivy