Kivy - base application has strange alignment

后端 未结 3 908
一生所求
一生所求 2020-12-20 19:29

I am trying to build a basic Kivy app. After adding the basic elements, and running the app, all of the elements are crammed into the bottom left corner. It shows up like th

3条回答
  •  不知归路
    2020-12-20 20:27

    Your layout has a default size of 100x100 pixels. You can try to color it to see how much space does it take:

    from kivy.app import App
    from kivy.uix.widget import Widget
    from kivy.lang import Builder
    
    kv = '''
    :
        BoxLayout:
            canvas:
                Color:
                    rgb: 1, 0, 0
                Rectangle:
                    size: self.size
            orientation: 'vertical'
            spacing: 10
            Label:
                text: "Enter the path to the folder to open.\\nPress OK if you would like to open without a directory"
            TextInput:
                id: folderpath
            Button:
                text: 'OK'
    '''
    Builder.load_string(kv)
    
    class SublimeLauncher(Widget):
        pass
    
    class SublimeLauncherApp(App):
        def build(self):
            return SublimeLauncher()
    
    if __name__ == "__main__":
        SublimeLauncherApp().run()
    

    Setting non-default size:

    kv = '''
    :
        BoxLayout:
            size: 250, 250
            canvas:
                Color:
                    rgb: 1, 0, 0
                Rectangle:
                    size: self.size
            orientation: 'vertical'
            spacing: 10
            Label:
                text: "Enter the path to the folder to open.\\nPress OK if you would like to open without a directory"
            TextInput:
                id: folderpath
            Button:
                text: 'OK'
    '''
    Builder.load_string(kv)
    

    Taking full space:

    kv = '''
    :
        BoxLayout:
            size: root.size
            canvas:
                Color:
                    rgb: 1, 0, 0
                Rectangle:
                    size: self.size
            orientation: 'vertical'
            spacing: 10
            Label:
                text: "Enter the path to the folder to open. \\nPress OK if you would like to open without a directory"
            TextInput:
                id: folderpath
            Button:
                text: 'OK'
    '''
    Builder.load_string(kv)
    

提交回复
热议问题