我只想在这个 kivy.clock 包的帮助下在标签上显示每个计数增量
class MainWindow(BoxLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
count=0
def my_callback(self):
global count
count +=1
us= self.ids.tet
if count == 10:
us.text=count
return False
print("call back is called")
Clock.schedule_interval(self.my_callback, 1)
count +=1
NameError: 名称 'count' 未定义
如何将 my_callback 函数绑定到按钮事件
以下片段显示了如何将on_press
事件绑定到回调。
Button:
text: 'Invoke method'
on_press: root.btn_callback(self)
def btn_callback(self, instance):
print(f"\nButton.text={instance.text}")
当使用Kivy Clock 对象在不使用lambda
函数的情况下调度对方法的调用时,您必须声明一个位置参数,dt
(表示增量时间)。
def my_callback(dt):
print(dt)
Clock.schedule_interval(my_callback, 1) # call callback every 1 second
或者
def my_callback():
print("my_callback called")
Clock.schedule_interval(lambda dt: callback(), 1) # call callback every 1 second
以下示例说明了显示定义为类属性的计数器。
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.clock import Clock
from kivy.properties import NumericProperty
from kivy.lang import Builder
Builder.load_string("""
<MainWindow>:
Label:
id: tet
font_size: sp(50)
Button:
text: 'Invoke method'
on_press: root.btn_callback(self)
""")
class MainWindow(BoxLayout):
count = NumericProperty(0)
def __init__(self, **kwargs):
super().__init__(**kwargs)
Clock.schedule_interval(self.my_callback, 1)
def my_callback(self, dt):
print(f"my_callback is called: count={self.count}, dt={dt}")
self.count += 1
if self.count == 10:
self.ids.tet.text = str(self.count)
def btn_callback(self, instance):
print(f"\nButton.text={instance.text}\n")
class TestApp(App):
def build(self):
return MainWindow()
if __name__ == "__main__":
TestApp().run()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句