Python kivy - 如何降低TextInput

时间:2017-05-31 11:14:08

标签: python user-interface kivy kivy-language

我正在使用kivy为应用程序制作一个非常简单的gui。没有什么复杂,非常简单的布局。

尽管如此,我在使用TextInputs时遇到了困难...它们总是以全高显示,我无法让它们适应“合理”的文字高度,如高度。

我正在使用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 个答案:

答案 0 :(得分:3)

要设置窗口小部件的高度,请先将size_hint_y设置为None,然后将height设置为您想要的任何内容。

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

答案 1 :(得分:0)

除了答案size_hint_x之外,size_hint_y必须分别设置为None,然后才能使用heightwidth属性,即{{1}减少打字。如果要设置size_hint: (None, None)属性,width设置为无,反之亦然。