Python Kivy:将文本对齐标签的左侧

时间:2015-07-26 15:36:40

标签: python label kivy text-alignment

我阅读了文档,但仍然不知道如何将Kivy-Label内的文本对齐到左侧。文本以默认为中心。 'C [a-z]*' 没有帮助。 对不起,如果解决方案很明显,但我根本找不到。

编辑: 示例代码:

halign = "left"

2 个答案:

答案 0 :(得分:16)

根据the documentation,新创建的标签的大小似乎与文本长度完全吻合,因此在设置halign属性后您可能看不到任何差异。

建议在那里更改size属性(如示例所示)

text_size = self.size

将标签的大小设置为包含它的小部件。 然后你应该看到标签正确居中。

正如Tshirtman指出的那样,您还必须将text_size属性绑定到size。完整的工作示例:

#!/usr/bin/kivy
# -*- coding: utf-8 -*-

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label

class Example(App):
    def build(self):
        self.root = FloatLayout()
        self.label = Label(text="I'm aligned :)", size_hint=(1.0, 1.0), halign="left", valign="middle")
        self.label.bind(size=self.label.setter('text_size'))    
        self.root.add_widget(self.label)
        return self.root

Example().run()

答案 1 :(得分:1)

我参加聚会有点晚了,但我发现的另一个不错的技巧是,如果您使用自己的自定义类创建标签,则可以在该类中定义 on_size 函数以将 text_size 更改为大小。< /p>

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label  
          
class MyLabel(Label):
   def on_size(self, *args):
      self.text_size = self.size
    
class Example(App):
           def build(self):
              self.root = FloatLayout()
              self.label = MyLabel(text="I'm aligned :)", size_hint=(1.0, 1.0), halign="left", valign="middle")
              self.root.add_widget(self.label)
              return self.root
    
Example().run()

使用 on_size 的示例:

enter image description here

没有 on_size 的例子:

without on_size