python - Kivy - using .kv -
i trying transfer widget creation .kv instead of in main.py. how can still reference on_press commands? painter child widget , contains function want call, unsure how can reference painter.acceptshape .kv.
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
here's simplified example showing how using id.
boxlayout: button: text: 'press me' on_press: painter.do_something() freedraw: id: painter
Comments
Post a Comment