KivyのTextInput
のラインラップ関数を実装したいと思います。私はラップ関数内にLabel
を作成していて、そのテクスチャサイズをチェックして、行に折り返しが必要かどうかを確認しています。ただし、texture_size
プロパティはテキストにかかわらず[0,0]
を返します。しかし、ボタンが正しい値を出力し、Kivyのラベルのtexture_sizeプロパティへのアクセス
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
class Test(App):
def build(self):
def f(a):
print(l.texture_size)
l = Label(text="Random text")
t = Button(on_press = f)
print(l.texture_size)
return t
Test().run()
をtexture_size
戻り[0,0]
build
方法から印刷するとき:だから私は調査するために一緒に少しテストコードを入れています。私の場合、ボタンはオプションではありません。Label
を作成し、そのテクスチャサイズを取得して削除したいと思います。たぶん、特定のフォントのピクセル単位でテキストサイズを判断する良い方法がありますか?または、そうでない場合は、build
メソッドで正しい値が印刷されないのはなぜですか? text
プロパティを設定した後、あなたがコアラベルを更新し、そのテクスチャサイズを確認する必要が
テキストをテクスチャに実際にレンダリングするために使用される内部クラスがあります。私はそれ(おそらくkivy.core.text.something)を見つけてレンダリングに使用し、テクスチャサイズをチェックします。テクスチャがすぐに作成されない場合は、タイミングの問題に遭遇している可能性があります。 – inclement