2017-12-01 12 views
1

Ich mag würde diese Zeile aus meiner Py-Datei löschen: durch die gleiche AnweisungKivy: bind-Methode innerhalb der .kv Datei

self.layout.bind(minimum_height=self.layout.setter('height')) 

und ersetzen sie aber in der .kv Datei. Gibt es eine Möglichkeit, self.layout.setter('height') an minimum_height zu binden?

Antwort

1

Um das Layout Höhe Kind-Widgets in der Höhe anpassen, die Sie einfach tun:

height: self.minimum_height 

Beispiel:

  • Nur Python-Code:

    from kivy.app import App 
    from kivy.uix.gridlayout import GridLayout 
    from kivy.uix.button import Button 
    from kivy.uix.boxlayout import BoxLayout 
    from kivy.uix.scrollview import ScrollView 
    
    
    
    class RootWidget(BoxLayout): 
        def __init__(self, **kwargs): 
         super(RootWidget, self).__init__(**kwargs) 
         self.orientation = "vertical" 
         self.sv = ScrollView() 
         self.btn = Button(text="Addd button", size_hint_y=0.1, 
                 on_press = self.add_button) 
         self.layout = GridLayout(cols = 1, size_hint_y= None, 
                  row_default_height= 100) 
         self.layout.bind(minimum_height=self.layout.setter('height')) 
         self.add_widget(self.sv) 
         self.add_widget(self.btn) 
         self.sv.add_widget(self.layout) 
    
        def add_button(self, instance): 
         self.layout.add_widget(Button()) 
    
    
    class TestApp(App): 
        def build(self): 
         return RootWidget() 
    
    if __name__ == '__main__': 
        TestApp().run() 
    
  • Mit Kivy Languaje:

    main.py:

    from kivy.app import App 
    from kivy.uix.gridlayout import GridLayout 
    from kivy.uix.button import Button 
    from kivy.uix.boxlayout import BoxLayout 
    
    
    
    class RootWidget(BoxLayout): 
        def __init__(self, **kwargs): 
         super(RootWidget, self).__init__(**kwargs) 
    
        def add_button(self): 
         self.layout.add_widget(Button()) 
    
    
    class TestApp(App): 
        def build(self): 
         return RootWidget() 
    
    if __name__ == '__main__': 
        TestApp().run() 
    

    test.kv:

    <RootWidget>: 
        orientation: "vertical" 
        layout: glayout 
        ScrollView: 
         GridLayout 
          id: glayout 
          cols:1 
          row_default_height: 100 
          size_hint_y: None 
          height: self.minimum_height # <<<<<<<<<<<<<<<< 
    
        Button: 
         text: "Add button" 
         on_press: root.add_button() 
         size_hint_y: 0.1 
    
Verwandte Themen