如何在 Kivy 文本输入中水平居中文本?

2024-03-31

我想在 Kivy 文本输入中将一行文本居中。 我将使用填充

widget.padding = [ (self.textinput.width - width of line) / 2, 20, 0, 0]

but i can't find the width of the line. How can I calculate or access the width of the line? enter image description here


有一个内部TextInput._get_text_width可用于计算适当填充的方法:

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.lang import Builder

Builder.load_string('''

<MyWidget>:
    TextInput:
        multiline: False
        on_text: root.update_padding(args[0])
        padding_x: self.width/2 # initial padding
''')

class MyWidget(FloatLayout):
    def update_padding(self, text_input, *args):
        text_width = text_input._get_text_width(
            text_input.text,
            text_input.tab_width,
            text_input._label_cached
        )
        text_input.padding_x = (text_input.width - text_width)/2

class MyApp(App):
    def build(self):        
        return MyWidget()

if __name__ == '__main__':
    MyApp().run()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Kivy 文本输入中水平居中文本? 的相关文章

随机推荐