Python Kivy-使用.kv
我正在尝试将我的小部件创建转移到.kv而不是main.py中。我如何仍然引用on_press命令?painter是另一个子小部件,包含我想要调用的函数,但是我不确定如何从.kv引用painter.acceptshapePython Kivy-使用.kv,python,kivy,Python,Kivy,我正在尝试将我的小部件创建转移到.kv而不是main.py中。我如何仍然引用on_press命令?painter是另一个子小部件,包含我想要调用的函数,但是我不确定如何从.kv引用painter.acceptshape class TestingApp(App): def build(self): parent = FloatLayout() keepbtn = Button(pos= (10,10),text='Accept Shape',size_hint=(.25
class TestingApp(App):
def build(self):
parent = FloatLayout()
keepbtn = Button(pos= (10,10),text='Accept Shape',size_hint=(.25, .15),font_size=14, color=(0.960784, 1, 0.980392,1), background_normal = '',\
background_color= ( 0.0980392, 0.0980392, 0.439216,1), font_name='Exo2-Bold.otf')
restartbtn = Button(text='Restart',size_hint=(.2, .15),font_size=14, color=(0.960784, 1, 0.980392,1), background_normal = '',\
background_color= (0.0980392, 0.0980392, 0.439216,1), font_name='Exo2-Bold.otf')
renderbtn = Button(text = "Render Shape", size_hint=(.2, .15),font_size=14, color=(0.960784, 1, 0.980392,1), background_normal = '',\
background_color= ( 0.0980392, 0.0980392, 0.439216,1), font_name='Exo2-Bold.otf')
parent.add_widget(keepbtn)
parent.add_widget(restartbtn)
parent.add_widget(renderbtn)
# if free draw option
painter = FreeDraw()
keepbtn.bind(on_press=painter.acceptshape)
restartbtn.bind(on_press=painter.restart)
renderbtn.bind(on_press=painter.render)
parent.add_widget(painter)
# # if preloaded box
return parent
if __name__ == '__main__':
TestingApp().run()
kv:
<FloatLayout>:
canvas:
Rectangle:
source: 'background.jpg'
size: self.size
pos: self.pos
:
画布:
矩形:
资料来源:“background.jpg”
大小:self.size
pos:self.pos
下面是一个简单的示例,演示如何使用id执行此操作
BoxLayout:
Button:
text: 'press me'
on_press: painter.do_something()
FreeDraw:
id: painter
好!严酷的回答是足够的,但如果你仍然有疑问的话,这可能会帮助你。