web-dev-qa-db-ja.com

Python Kivy:テキストをラベルの左側に揃えます

ドキュメントを読みましたが、Kivy-Label内のテキストを左側に揃える方法がまだわかりません。テキストはデフォルトから中央に配置されます。 A halign = "left"助けにはならなかった。申し訳ありませんが、解決策が明らかな場合、私は単にそれを見つけられません。

編集:サンプルコード:

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()
10
d0n.key

ドキュメント によると、新しく作成されたラベルのサイズはテキストの長さに正確に一致しているため、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()
21
rebrec