Sea*_*rke 7 python kivy sizehint
我想知道我是否得到了关于 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)))
Run Code Online (Sandbox Code Playgroud)
这是我的期望:
|----------------------------------------------------------------------|
|Test_num : Test_txt : Test_btn |
Run Code Online (Sandbox Code Playgroud)
相反,这是结果:
|----------------------------------------------------------------------|
| Test_num : Test_txt : Test_btn |
Run Code Online (Sandbox Code Playgroud)
我玩过 size_hint 和 size 的不同组合,最终得到了非常相似的结果。我错过了什么或不明白什么?
据我所知,当您为同一属性设置size_hintAND 时,例如为两者设置 x 或 y 时,AND的使用是不兼容的。size使用其中之一。如果你仔细想想,这是有道理的。使用size,您可以明确设置小部件的大小,并且使用size_hint,您还可以显式设置小部件的大小,只是以不同的方式,相对于小部件父级。因此,如果您将两者用于同一属性 x 或 y,它们必然会发生冲突。
这里的例外可能是当您size_hint_y像上面那样设置为 None,然后size为 y 指定 a 时。或者,如果您设置size_hint_x为“无”,并且仅指定了一个size为 x 指定了 a。
然而,上面你已经设置了sizex ,并且size_hintx 。
所以:这些应该没问题
size_hint=(None, .5), width=100
size_hint=(.5, None), height=100
Run Code Online (Sandbox Code Playgroud)
这些会发生冲突
size_hint=(.6, .5), size=(34, 66)
size_hint=(None, 55), height=80
Run Code Online (Sandbox Code Playgroud)