Python kivy - 如何减少 TextInput 的高度

Posted

技术标签:

【中文标题】Python kivy - 如何减少 TextInput 的高度【英文标题】:Python kivy - how to reduce height of TextInput 【发布时间】:2017-11-01 04:05:56 【问题描述】:

我正在使用 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...但没有一个有效..

【问题讨论】:

【参考方案1】:

要设置小部件的高度,首先将size_hint_y 设置为None,然后您可以将height 设置为您想要的任何值。

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

【讨论】:

非常感谢,这让我发疯了。我可以问你我如何才能垂直居中我刚刚设法降低高度的文本输入? 不用担心,kivy 有时会对简单的事情感到困惑。要垂直居中(如果您不打算使用任何其他小部件),我建议使用 FloatLayout,其中的小部件使用 pos_hint。将 'center_y' 设置为 0.5,在此处阅读更多信息 kivy.org/docs/…【参考方案2】:

除了答案size_hint_xsize_hint_y 必须分别设置为None 之前heightwidth 属性可以使用,即size_hint: (None, None) 以减少打字。如果要设置width 属性,请将size_hint_x 设置为无,反之亦然。

【讨论】:

以上是关于Python kivy - 如何减少 TextInput 的高度的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何在 Kivy 中创建一个简单的框架?

如何在 python 中获取用户输入(Kivy 框架)

如何在 Python/Kivy 中实现 ScrollView

如何制作kivy文件的单独模块并与python文件集成

如何使用 python 语言在 kivy 中定位图像?

Kivy,python:如何从根类(FaceRecApp)访问外部/子类?