2015-07-26 12 views
4

Я прочитал документы и до сих пор не знаю, как выровнять текст внутри Kivy-Label с левой стороны. Текст имеет значение по умолчанию. A halign = "left" не помогло. Извините, если решение очевиден, но я его просто не нахожу.Python Kivy: Выровнять текст в левой части метки

EDIT: Пример кода:

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 centered :(", pos=(0,0), size_hint=(1.0,1.0), halign="left") 
      self.label.text_size = self.label.size #no horizontal change 
      self.root.add_widget(self.label) 
      return self.root 

Example().run() 

ответ

13

Согласно the documentation, кажется, что новый созданный ярлык имеют размер, который точно соответствовать длины текста, так что вы можете не увидеть каких-либо различий после установки halign собственности.

рекомендуется там, чтобы изменить свойство размера (как показано в примере)

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() 
+0

У меня уже был размер, который шире, чем текст внутри этикетки. – Unknown

+0

Возможно, вам придется опубликовать свой код, чтобы лучше помочь – rebrec

+0

, отредактированный с помощью примерного кода. – Unknown

Смежные вопросы