文字サイズの自動調節

Labelfont_size を自動調節するmix-in class。

(Tested on CPython3.9.7 + Kivy2.1.0)

使用例

<MyLabel@KXFontsizeAdjustmentBehavior+Label>:

MyLabel:
    text: 'Hello Kivy'
_images/normal.png
MyLabel:
    text: ('Hello Kivy ' * 5)[:-1]
_images/long.png
MyLabel:
    text: ('Hello Kivy\\n' * 5)[:-1]
_images/multilines.png

font_sizeの取り扱い

font_size の調節する役目はこのclassが担うので普通に font_size へ書き込んでも実際の大きさには影響を与えられない。 もしこのclassを使いながらも特定の値へ固定したいなら font_size_min と font_size_max にその値を書き込む必要がある。 尚 bind()fbind() を用いて font_size の変化を監視することはできる。

一部のmarkup tagは調節を妨げる

[size][/size][font][/font] のような font_size への影響の大きいtagを用いると調節に失敗しやすくなる。

MyLabel:
    markup: True
    text: 'ABCDE[size=40]abcde[/size]'
_images/failure.png
class kivyx.uix.behaviors.fontsizeadjustment.KXFontsizeAdjustmentBehavior(**kwargs)[source]

Bases: object

delay_on_texture_update = 0.2

widgetの大きさが変わってから文字列を再描画するまでの遅延時間。零だと遅延が無くなる。 widgetの大きさをアニメーションする場合はこの値を減らしすぎないよう注意。

font_size_max = 9999

文字の大きさの上限。

font_size_min = 1

文字の大きさの下限。