Kivy Python-文本输入框填充整个浮动布局屏幕

时间:2017-07-08 04:31:47

标签: python kivy textinput kivy-language

我在Kivy遇到了TextInput的问题。

当我将其添加到我的一个屏幕上的现有FloatLayout时,它会占用整个窗口,即使指定了高度也是如此。我想将它保存在.py文件中,因此请不要在.kv文件中添加任何样式选项来调整大小。

class WebsiteInput(Screen):
    def __init__(self, **kwargs):
        super(WebsiteInput, self).__init__(**kwargs)
        Clock.schedule_once(self._finish_init)

    def _finish_init(self, dt):
        # Title Label
        self.lbl1 = Label(text="Enter a URL to bind to this button:", pos=(self.x, self.height +132))
        self.lbl1.font_name = 'Montserrat-Bold.ttf'
        self.lbl1.font_size = 28
        self.ids.float_web.add_widget(self.lbl1)
        # URL Text Input
        self.web_input = TextInput(height=100)
        self.web_input.height = 100
        self.ids.float_web.add_widget(self.web_input)

正如您所看到的,我已尝试在两个不同的位置影响大小,并且它仍在填充整个窗口。

1 个答案:

答案 0 :(得分:1)

要使size属性生效,您需要size_hint属性在相应的轴上为None

class WebsiteInput(Screen):
    def __init__(self, **kwargs):
        super(WebsiteInput, self).__init__(**kwargs)
        Clock.schedule_once(self._finish_init)

    def _finish_init(self, dt):
        # Title Label
        self.lbl1 = Label(text="Enter a URL to bind to this button:",
                          pos=(self.x, self.height +132))
        self.lbl1.font_name = 'Montserrat-Bold.ttf'
        self.lbl1.font_size = 28
        self.ids.float_web.add_widget(self.lbl1)
        # URL Text Input
        self.web_input = TextInput(height=100, 
                                   size_hint = (1,  None))
        self.ids.float_web.add_widget(self.web_input)