[英]How to I exactly the position of a kivy text label on a canvas?
我在 figma 中設計了以下內容。 我創建了一個 500px x 500px window 和一個小部件。 我想將“動態”文本放置在距左側 160px 和距頂部 207px 的位置。 人物設計
對於圖像,效果很好,但對於文本,它根本不起作用。 這是代碼
class ScreenOne(Widget):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.gif = Image(source='gifs/ring.gif', pos=(23, 191), size=(126, 119), anim_delay=0.1)
self.gif0 = Image(source='gifs/test500.gif', pos=(0, 0), size=(500, 500), anim_delay=0.1)
self.text1 = Label(text="1", pos=(77, 228), font_name="Inter-Bold", font_size=36)
self.text2 = Label(text="in motion", pos=(160, 207), pos_hint=(0,0), size_hint=(0,0), font_name="Inter-Bold", font_size=64)
self.add_widget(self.gif0)
self.add_widget(self.gif)
self.add_widget(self.text1)
self.add_widget(self.text2)
環形動圖(gif)位置完美,但text2完全關閉。 見下文:
任何人都知道如何准確地放置文本標簽,就像我希望它們放置在 Figma 中一樣?
嘗試使用標簽 pos_hint=(0,0)、size_hint=(0,0) 等。
問題是text2
Label
的size
是默認大小,寬度為 100。因此實際文本將不適合該大小並以實際Label
大小為中心。 所以結果是Label
被正確定位,但文本超出了默認大小。
解決方法是調整Label
大小以正確反映您的預期。
嘗試添加到您的代碼:
class MyLabel(Label):
pass
Builder.load_string('''
<MyLabel>:
size_hint: None, None
size: self.texture_size
''')
然后在代碼的其他地方使用MyLabel
代替Label
。
優秀 -> 這有效@John。 非常感謝。 我使用 Figma 中的尺寸按以下方式實現了它,並按以下方式添加了 size 屬性:
self.text2 = Label(text="in motion", pos=(160, 207), pos_hint=(0,0), size_hint=(0,0), size(296, 65), font_name="Inter-Bold", font_size=64)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.