Kivy TextInput如何更改hint_text字体大小

Posted

技术标签:

【中文标题】Kivy TextInput如何更改hint_text字体大小【英文标题】:Kivy TextInput how to change hint_text font size 【发布时间】:2021-07-16 00:44:30 【问题描述】:

有没有办法在 Kivy 中更改 TextInput 提示文本的字体大小?我找不到任何关于使用 hint_text_size 的文档。

TextInput:
    id: text_input_unique
    hint_text: 'example: Stand25'
    hint_text_size: 16
    multiline: False
    size_hint_y: None
    height: 50
    font_size: 32
    halign: 'center'
    cursor_color: (0,0,0,1)

【问题讨论】:

【参考方案1】:

TextInputhint_text 使用与主文本相同的字体属性(颜色除外)。这是TextInput 的扩展,它尊重hint_font_size 属性:

class TextInputwHintSize(TextInput):
    hint_font_size = NumericProperty(sp(15))

    def __init__(self, **kwargs):
        self.regular_font_size = sp(15)
        self.ignore_font_size_change = False
        super(TextInputwHintSize, self).__init__(**kwargs)
        Clock.schedule_once(self.set_font_size)

    def set_font_size(self, dt):
        self.ignore_font_size_change = True
        if self.text == '':
            self.font_size = self.hint_font_size

    def on_font_size(self, instance, size):
        if self.ignore_font_size_change:
            return
        self.regular_font_size = size


    def on_text(self, instance, text):
        if text == '':
            self.font_size = self.hint_font_size
        else:
            self.font_size = self.regular_font_size

例如,像这样使用:

TextInputwHintSize:
    id: text_input_unique
    hint_text: 'example: Stand25'
    hint_font_size: 16
    multiline: False
    size_hint_y: None
    height: 50
    font_size: 32
    halign: 'center'
    cursor_color: (0,0,0,1)

【讨论】:

我尝试将 regular_font_size 更改为 32,但它保持在 15。我需要处理 instance 参数吗? 我更新了代码以更好地处理 'kv` 和 python 代码。 谢谢你,效果更好。有几件事我想改进,但现在它有效。我想这样做,以便当光标位于 textinput 上时,它会以 32 字体大小闪烁。干杯!

以上是关于Kivy TextInput如何更改hint_text字体大小的主要内容,如果未能解决你的问题,请参考以下文章

Kivy:如何在 kivy 中制作圆角 TextInput?

Kivy:如何摆脱 TextInput 中奇怪的阴影外观?

(Kivy/Python)当用户点击输入时从 textinput 小部件存储文本

如何使可编辑标签在kivy中工作

如何在kivy python中添加标签,TextInput

如何使用kivy将textinput转换为float并返回