![](/img/trans.png)
[英]Dynamically resizing a kivy label (and button) on the python side
[英]Side-by-side Labels in StackLayout: Why is second label missing? (kivy, python)
如何在 Kivy StackLayout 中並排顯示兩個標簽?
考慮以下代碼
#!/usr/bin/env python3
from kivy.uix.button import Button
from kivy.lang import Builder
from kivy.app import App
KV = """
StackLayout:
orientation: 'lr-tb'
Label:
text: "Hello"
Label:
text: "World"
"""
class MyApp(App):
def build(self):
return Builder.load_string( KV )
MyApp().run()
我試圖讓兩個文本標簽並排顯示。 最初我使用的是 BoxLayout 和 GridLayout,但我發現它們會使每個小部件的寬度與應用程序的寬度一致。 而我想要:
spacing
。不幸的是,上面的代碼甚至沒有顯示第二個 label——它根本不存在。 為什么?
如何在不使用 kivy 添加額外間距或使用StackLayout
時神秘地根本不顯示我的第二個 label 的情況下,如何彼此相鄰顯示兩個標簽?
要使這項工作按預期進行,您必須:
size_hint
覆蓋為None
和size
設置為它的texture_size
(這是呈現字體所需的實際像素——但您實際上可能想用一些像素填充它)例如
#!/usr/bin/env python3
from kivy.uix.button import Button
from kivy.lang import Builder
from kivy.app import App
KV = """
StackLayout:
orientation: 'lr-tb'
Label:
text: "Hello"
size: self.texture_size
size_hint: None, None
Label:
text: "World"
size: self.texture_size
size_hint: None, None
"""
class MyApp(App):
def build(self):
return Builder.load_string( KV )
MyApp().run()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.