7

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 のさまざまな組み合わせで遊んだ結果、非常によく似た結果になりました。何が欠けているか、理解していませんか?

4

1 に答える 1

5

私が知る限り、両方に x または y を設定する場合のように、AND を同じ属性に設定する場合、size_hintANDの使用は互換性がありません。sizeどちらかを使用してください。考えてみれば、それは理にかなっています。を使用sizeするとウィジェットのサイズを明示的に設定し、 を使用するとウィジェットsize_hintのサイズも明示的に設定しますが、ウィジェットの親に相対的な方法とは異なります。したがって、同じ属性 x または y に両方を使用すると、競合が発生します。

ここでの例外は、たとえば、size_hint_y上記のように None に設定し、sizey に a を指定した場合です。または、size_hint_xNone に設定し、sizex に a のみを指定した場合。

ただし、上記sizeでは x のを設定しsize_hint、すべてのインスタンスで 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
于 2015-10-20T11:52:51.293 に答える