使用 python 主文件传递按钮 ID:kivy

Posted

技术标签:

【中文标题】使用 python 主文件传递按钮 ID:kivy【英文标题】:Pass button id using python main file: kivy 【发布时间】:2021-08-03 08:18:49 【问题描述】:

我正在尝试使用 python 主文件将 id 传递给按钮。此代码用于以前版本的 kivy。我刚刚为此安装了 kivy 2.0,但它返回以下错误:

super(Widget, self).init(**kwargs)

文件“kivy_event.pyx”,第 245 行,在 kivy._event.EventDispatcher.init

TypeError: object.init() 只接受一个参数(要初始化的实例)

当我从按钮中删除 id 时它可以工作

            btn = Button(text='Delete (X)', id="school", bold=True, color=(1, 1, 1, 1),
                         background_color=(1, 0.8, 0.8, 1), size_hint=(None, None), font_size=15, size= 
                         (100, 25),
                         pos_hint=('center_x': .5), on_release=lambda btn: Education().delete(btn.id))```

【问题讨论】:

***.com/questions/68584198/… 【参考方案1】:

id= 不是 Button 构造函数的合法参数,因此它被传递给 super 类,直到它到达基类 (object),它不接受除 @ 之外的任何参数987654325@。所以它抛出一个异常。

如果您正在考虑 kivy 语言中的 id,请注意 id:kivy 语言中是特殊的,用于在规则的根小部件中创建小部件字典。并且指定的id 在该字典中使用,但不会成为它出现的小部件的属性。

【讨论】:

我降级到 python 3.7.1 和 kivy 1.11.1,现在它可以像更新前一样工作。感谢@JohnAnderson 的回复

以上是关于使用 python 主文件传递按钮 ID:kivy的主要内容,如果未能解决你的问题,请参考以下文章

将 Kivy Widget 传递给另一个类

按下时将动态创建的按钮信息传递给函数。 kivymd, kivy, 蟒蛇

在 Kivy 中将图像对象作为按钮背景传递

(Kivy Python)在 .py 文件中按下按钮时切换屏幕

Python Kivy:如何在按钮单击时调用函数?

加载表单后如何运行函数 Kivy