标签未受AnchorLayout影响 - Kivy
我刚开始学习kivy,遇到了一个布局的问题。
我使用了Anchor Layout来把一个按钮放在中间,代码是这样的:
Button:
text: "A button"
anchor_x:'center'
anchor_y:'center'
但是当我尝试这样做的时候:
Label:
text: "Hello World!"
size_hint: 1, 1
anchor_x:'center'
anchor_y:'top'
它只是在默认的中心位置显示了“Hello World!”,但我想让它在我居中按钮的上面。
我试过很多方法,也看了文档,但找不到任何解释。
编辑:这里是两个文件:
py文件:
import kivy
kivy.require('1.8.0')
from kivy.app import App
from kivy.uix.anchorlayout import AnchorLayout
class Layout(AnchorLayout):
pass
class LayoutApp(App):
def build(self):
return Layout()
if __name__ == '__main__':
LayoutApp().run()
kv文件:
<Layout>:
Label:
text: "Hello World!"
font_size: 50
size_hint: None, None
height: 100
anchor_x:'center'
anchor_y:'top'
Button:
text: "Button"
background_colour: (0,0,1,1)
size_hint: None, None
size: 50, 50
anchor_x:'center'
anchor_y:'top'
1 个回答
1
size_hint: 1, 1
这就是你的问题,size_hint的意思是这个标签(Label)的大小和它的父布局是一样的,文字会显示在中间……也就是说,正好在屏幕的中间。无论这个标签锚定在哪里,都没关系,因为它没有空间可以移动。
你应该手动设置你想要的大小,比如:
size_hint_y: None
height: 50