Kivyのsize_hintプロパティの使い方を説明します。画面領域に対するウィジェットサイズは自動で行われますが、明示的にウィジェットのサイズを指定したい時に便利です。
size_hintプロパティでウィジェットの大きさを指定する
size_hintはWidgetクラスのプロパティでウィジェット共通で使用できます。ウィジェットの幅や高さを親ウィジェットに対する割合で指定したい時に使います。画面サイズを変更するとKivyが自動でウィジェットの割合を判断して自動調節してくれますが、割合を明示的に指定したい場合に便利です。
size_hintの引数は[width_hint, height_hint]です。割合は0~1で指定し、1が100%になります。0の場合は0またはNoneで指定します。この場合は最小値のデフォルト値が適用されます。
- width_hint: 幅を親ウィジェットの幅に対する割合で指定。
- height_hint:高さを親ウィジェットの高さに対する割合で指定。
親ウィジェットは通常レイアウトを指します。
デフォルトは[1,1]で、ウィジェットが1つの場合は画面領域全体をウィジェットが埋め尽くします。レイアウトのpaddingやspacingを設定していた場合はその数値を除いた領域で計算されます。
size_hint: 1, 0.5
上記は幅を100%、高さを50%に設定しています。
片方だけ0またはNoneにすることもできます。この場合はsize_hint _minが適用されます。size_hint _minはウィジェット最小の幅や高さになります。デフォルト値はわかりませんが、最小の値を設定したい場合はこちらも設定します。
size_hint: 1, 0
#または
size_hint: 1, None
上記は幅を100%、高さを最小値に設定しています。
size_hint: 0, 0
#または
size_hint: None, None
両方0またはNoneに設定すると最小の幅と高さになります。
ウィジェットのサイズを固定化したい場合
Kivyに自動調整されたくない場合は、ウィジェットのサイズを固定することもできます。
size_hintをNoneに設定し、widthまたはheightを併用して設定します。heightまたはwidthはウィジェットサイズを設定でき、単位はピクセルになります。この両方のプロパティを設定することで、Noneにした場合の最小値がwidthまたはheightの値になるので固定化することができます。
size_hint: 1, None
height: 100
上記は幅100%、高さを100に固定しました。これで画面サイズを変更してもウィジェットの高さは変更されません。
size_hintでは幅と高さの両方を同時に設定しますが、幅や高さだけ設定したり最小値を設定することも可能です。
個別で設定する
Kivyの自動調整の利点を活かして変更したい設定だけ変えた方がいい場合もあります。
幅/高さ
size_hint_x: 0.5
上記はウィジェットの幅を設定します。固定化したい場合はwidthと併用します。
size_hint_y: 0.7
上記はウィジェットの高さを設定します。固定化したい場合はheightと併用します。
ウィジェットの最小値を設定する
デフォルトで単位はピクセルになります。
size_hint_min_y: 100
上記はウィジェットの最小幅を設定します。
size_hint_min_x: 100
上記はウィジェットの最小の高さを設定します。
ウィジェットの最大値を設定する
size_hint_max_y: 500
上記はウィジェットの最大の幅を設定します。
size_hint_max_x: 500
上記はウィジェットの最大の高さを設定します。
Comment