缺少 1 个必需的位置参数 dt

史瑞坎特·萨瓦卡

我只想在这个 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' 未定义

伊科林

按钮绑定 - on_press / on_release 事件

如何将 my_callback 函数绑定到按钮事件

解决方案 - 按钮 on_press 事件

以下片段显示了如何将on_press事件绑定到回调。

片段 - kv 文件

Button:
    text: 'Invoke method'
    on_press: root.btn_callback(self)

片段 - py 文件

def btn_callback(self, instance):
    print(f"\nButton.text={instance.text}")

使用 Kivy Clock - 调用 callback() 方法

当使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ArrayField缺少1个必需的位置参数

__init __()缺少1个必需的位置参数

缺少1个必需的位置参数:“ pk”

缺少1个必需的位置参数:“键”

python缺少1个必需的位置参数

channel()缺少1个必需的位置参数

AssertTrue 缺少 1 个必需的位置参数

缺少1个必需的位置参数:“循环”

缺少 1 个必需的位置参数:“数字”

缺少1个必需的位置参数:'self'

缺少1个必需的位置参数:“ msg”

缺少1个必需的位置参数

函数缺少 1 个必需的位置参数

缺少 1 个必需的位置参数 [Telebot]

method1()缺少1个必需的位置参数:“ self”

__init__() 缺少 1 个必需的位置参数:'self'

类型错误:post() 缺少 1 个必需的位置参数

类型错误:readData() 缺少 1 个必需的位置参数:“数据”

TypeError:detail()缺少1个必需的位置参数:“ request”

TypeError:predict()缺少1个必需的位置参数:“ params”

多处理,缺少 1 个必需的位置参数:“响应”

setUpClass()缺少1个必需的位置参数:“ cls”

TypeError:fit()缺少1个必需的位置参数:'y'

load_model()缺少1个必需的位置参数:“ filepath”

TypeError:append()缺少1个必需的位置参数:“ values”

django 模板标签缺少 1 个必需的位置参数:值

geopy TypeError:geocode()缺少1个必需的位置参数:“ query”

TypeError:setDocumentLocator()缺少1个必需的位置参数:“ locator”

Django模型属性:缺少1个必需的位置参数: