【发布时间】:2014-06-17 18:28:34
【问题描述】:
我正在尝试在 Kivy 中将 TextInput 的文本垂直居中。 但目前还没有解决方案。
如何对 kv 文件中的文本输入进行 valign?水平居中也很高兴知道如何做到这一点。
对于标签,我检查了 Kivy 中的文本对齐示例,并且 alginment 正在工作,因为您可以使用 'valign' 和 'halign' 进行对齐,但这不适用于 TextInputs。
也许使用 texture_size 的技巧会有所帮助,但我需要检查它是如何工作的。我见过这样的标签技巧,但我不知道它是否适用于 TextInput。
这是我现在拥有的 kv 代码:
#: set Buttonheight1 40
BoxLayout:
size_hint_y: None
height: Buttonheight1
Label:
id: _number_label
text: "Number:"
font_size: 10
size_hint_x: None
width: 50
canvas.after:
Color:
rgba: 1,0,0,.5
Rectangle:
pos: self.pos
size: self.size
TextInput:
multiline: False
size_hint_y: None
height: _number_label.height
#padding_top: 10
font_size: 10
text: str(self.font_size)
#text: '%s, %s' % (self.get_center_x(), self.get_center_y()) #position test
kv代码说明:
- Buttonheight1 是一个设置了 kv 的常数
- canvas.after 只是为了调试标签的大小
- 文本输入的文本将字体大小显示为虚拟文本
也许修复起来很简单,但我对 Kivy 还很陌生,还没有找到一个例子。
这是目前的样子:
(注意:截图中的OK按钮不在上面的kv代码中)
【问题讨论】: