Python 需要帮助理解kivy中的尺寸提示吗

Python 需要帮助理解kivy中的尺寸提示吗,python,kivy,sizehint,Python,Kivy,Sizehint,我想知道我是否能得到一个解释,说明size_hint在Kivy中是如何工作的。根据我的理解,这是小部件与其父布局之间的相对比例。我尝试了以下代码: class TestFrame(GridLayout): def __init__(self, **kwargs): GridLayout.__init__(self, **kwargs) self.rows = 1 self.add_widget(Lab

我想知道我是否能得到一个解释,说明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\u hint
size
是不兼容的,就像为两者设置x或y一样。用一个或另一个。如果你仔细想想,这是有道理的。使用
size
,您显式地设置小部件的大小;使用
size\u hint
,您也显式地设置小部件的大小,只是以一种与小部件父级相关的不同方式。因此,如果对同一属性x或y同时使用这两个属性,则它们必然会发生冲突

这里的例外情况可能是,例如,
size\u hint\u y
设置为None,就像上面所做的那样,然后为y指定一个
size
。或者,如果将
size\u hint\u x
设置为None,并且只为x指定了
size

但是,在上面,您已经设置了x的
大小
,并且在所有情况下都设置了x的
大小提示

因此: 这些应该可以

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

我只是再试了一次,但没什么不同。呃,我觉得自己像个白痴,我有另一个小部件,它位于我忽略的类的顶部,它没有包含大小提示。因为我没有在所有的机器上都使用大小提示,所以它不能正常工作。