首页 > 解决方案 > Kivy TextInput如何更改hint_text字体大小

问题描述

有没有办法在 Kivy 中更改 TextInput hint_text 字体大小?我找不到任何关于将某些东西用作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)

标签: kivyfont-sizetextinput

解决方案


它使用与正文TextInput相同的字体属性(颜色除外)。hint_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)

推荐阅读