Python Kivy - 如何减小TextInput的高度

7
我正在使用kivy为应用程序制作一个非常简单的GUI界面,布局非常简单。
然而,我在TextInputs方面遇到了一些困难...它们总是显示为完整的高度,我无法使它们调整到"合理"的文本高度,例如height。
我正在使用kv文件样式,因为我发现它更清洁、更容易集成到已有的应用程序中...我希望尽可能地减少应用程序的GUI-Python代码。
这是我得到的TextInput内容(添加其他部分的GUI是无用的)。 Python代码
# textInput.py
from kivy import require
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang.builder import Builder

Builder.load_file('path/to/kv/file/textInput.kv')

require('1.10.0')

class MainScreen(BoxLayout):
    pass

class Test(App):
    def build(self):
        self.title = 'Testing textInput'
        return MainScreen()

if __name__ == '__main__':
    Test().run()

KV代码

# textInput.kv
<MainScreen>
    orientation: 'vertical'

    # Third section title
    Label:
        size_hint: (1, .1)
        text: 'Setup Connection'
        font_size: 25

    # Third section Box
    BoxLayout:
        size_hint: (1, .2)
        padding: [100, 0, 100, 0]
        BoxLayout:
            Label:
                size_hint: (.2, 1)
                text: 'Host'
            TextInput:
                height: self.minimum_height
                multiline: False
                text: 'localhost'
            Label:
                size_hint: (.2, 1)
                text: ''
            Label:
                size_hint: (.2, 1)
                text: 'Port'
            TextInput:
                size_hint: (.2, 1)
                multiline: False
                text: '502'

我尝试了很多方法,在这段代码中,我尝试使用size_hint和height属性...但都没有起作用。

2个回答

9

要设置小部件的高度,首先将size_hint_y设置为None,然后可以将height设置为所需高度。

TextInput:
    size_hint: (.2, None)
    height: 30
    multiline: False
    text: '502'

非常感谢,这解决了我疯掉的问题。我还能问一下如何垂直居中文本输入框吗?我刚刚成功地将其高度减小了。 - Bertone
别担心,有时候kivy在简单的事情上非常令人困惑。要垂直居中(如果您不打算使用其他小部件),我建议使用FloatLayout,对于其中的小部件,请使用pos_hint。将'center_y'设置为0.5,在此处阅读更多信息:https://kivy.org/docs/api-kivy.uix.widget.html#kivy.uix.widget.Widget.pos_hint - Edvardas Dlugauskas

0

除了答案之外,必须分别将size_hint_xsize_hint_y设置为None,然后才能使用heightwidth属性,即size_hint: (None, None)以减少输入。如果要设置width属性,则将size_hint_x设置为None,反之亦然。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接