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

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -