[英]Need help understanding size_hint in kivy
我当时想知道我是否得到了关于size_hint如何在Kivy中工作的解释。 根据我的理解,它是从小部件到其父布局的相对比例。 我尝试了以下代码:
class TestFrame(GridLayout):
def __init__(self, **kwargs):
GridLayout.__init__(self, **kwargs)
self.rows = 1
self.add_widget(Label(text='test_num', size=(100, 25), size_hint=(.10, None)))
self.add_widget(Label(text='test_txt', size=(100, 25), size_hint=(.75, None)))
self.add_widget(Button(text='test_btn', size=(100, 25), size_hint=(.15, None)))
这就是我的期望:
|----------------------------------------------------------------------|
|Test_num : Test_txt : Test_btn |
相反,这是结果:
|----------------------------------------------------------------------|
| Test_num : Test_txt : Test_btn |
我玩过size_hint和size的不同组合,结果非常相似。 我错过了什么或不理解?
据我所知,当你为同一属性设置size_hint
和size
时,使用size_hint
和size
是不兼容的,就像设置两者的x或y一样。 使用其中一个。 如果你考虑一下,这是有道理的。 使用size
,您可以显式设置窗口小部件的大小,并且使用size_hint
,您还可以以不同的方式显式设置窗口小部件的大小,即相对于窗口小部件父级。 因此,如果将两者用于相同的属性x或y,则它们必然会发生冲突。
例如,当您将size_hint_y
设置为None时,可能就像上面那样,然后指定y的size
。 或者,如果将size_hint_x
设置为None,并且仅指定x的size
。
但是,在上面你已经设置了x的size
,并且在所有实例中都设置了x的size_hint
。
所以:这些应该没问题
size_hint=(None, .5), width=100
size_hint=(.5, None), height=100
这些会发生冲突
size_hint=(.6, .5), size=(34, 66)
size_hint=(None, 55), height=80
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.