0

Python クラスおよび kivy マークアップとして定義されているカスタム ボタン ウィジェットがあります。'50sp'パラメータがボタンに渡されない限り、フォントをデフォルトサイズ(たとえば )に設定したいと思いますfont_size。その場合、フォントサイズは渡された値でなければなりません。コードは次のとおりです。

パイソン:

class Custom_Button(Button):
    ...

キビ:

<Custom_Button>:
    ...
    font_size = self.font_size if self.font_size else '50sp'

問題は、「50sp」条項に到達しないことです。作成時に font_size パラメーターが Button オブジェクトのインスタンスに渡されない場合、kivy のデフォルトのフォント サイズが使用されます。この動作の原因と何をすべきかについての提案はありますか? ありがとうございました。

4

1 に答える 1

2

self.font_size を 50sp に設定しないのはなぜですか? そうすれば、ユーザーが何かを提供しない限り、常にデフォルトになります。

class Custom_Button(Button):
    font_size = NumericProperty('50sp')

kv 言語でこれを行うこともできます。ユーザーが指定した値は、ここで指定したデフォルトをオーバーライドすると思います。

<Custom_Button>:
    font_size: sp(50)
于 2013-10-30T21:20:34.873 に答える