使用 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的主要内容,如果未能解决你的问题,请参考以下文章
按下时将动态创建的按钮信息传递给函数。 kivymd, kivy, 蟒蛇