我有一个带有一个按钮的小部件 SimpleWidget.py
PostId
.kv
from kivy.properties import ObjectProperty
from kivy.uix.widget import Widget
class SimpleWidget(Widget):
bt = ObjectProperty()
如何使用不同的按钮处理程序在.kv中创建此小部件?
我尝试使用此代码执行此操作
<SimpleWidget>:
bt: button
Button:
id: button
或者
<MainScreen>:
BoxLayout:
SimpleWidget:
bt.on_press: print('1')
SimpleWidget:
bt.on_press: print('2')
在这两种情况下,都会抛出异常
<MainScreen>:
BoxLayout:
SimpleWidget:
self.button.on_press: print('1')
SimpleWidget:
self.button.on_press: print('2')
答案 0 :(得分:0)
您可以在小部件上定义属性。
<强> SimpleWidget.kv 强>
<MainScreen>:
BoxLayout:
SimpleWidget:
number: 1
SimpleWidget:
number: 2
<SimpleWidget>:
number: 0
Button:
id: button
on_press: print(root.number)
<强> SimpleWidgetApp.py 强>
from kivy.uix.widget import Widget
from kivy.app import App
from kivy.uix.label import Label
class MainScreen(Widget):
pass
class SimpleWidget(Widget):
pass
class SimpleWidgetApp(App):
def build(self):
return MainScreen()
if __name__ == '__main__':
SimpleWidgetApp().run()