0
kvファイルのRoundedRectangle
を使用してウィジェットの背景を描画しました。今度は別のウィジェットを作成したいのですが、このウィジェットとの唯一の違いは背景色です。プロパティアプローチ(@inclementで提案されている)は私に奇妙なエラーを与えます。何らかの理由で、私が別の場所(例えばcursor_color
)で使用したときにプロパティが動作するので、ここで動作すると期待しています。だから、新しい質問は、なぜその財産が認識されていないのですか? Kivyウィジェットのキャンバス要素へのアクセス
<Message>:
BoxLayout:
colour_property: 0.99, 0.99, 0.99, 1
canvas:
Color:
rgba: 0.8, 0.8, 0.8, 1
RoundedRectangle:
pos: root.pos
size: self.size
Color:
rgba: self.colour_property
RoundedRectangle:
pos: root.x + 1, root.y + 1
size: self.width - 2, self.height - 2
TextInput:
pos: root.pos
size: root.size
とPythonコード:
class Message(Widget):
colour_property = ListProperty([0.99, 0.99, 0.99, 1])
def __init__(self, **kwargs):
self.colour_property = ListProperty([0.99, 0.99, 0.99, 1])
super(Message, self).__init__(**kwargs)
rgba: self.colour_property
ラインの解析時にエラーが発生します。
なんらかの理由で、そのプロパティを認識しません。私があなたが示したように、kvの '__init__'の外でそれを定義しましたが、それでも解析エラーが出ます。何がここで間違っているかもしれないかに関するアイデア?コードを表示するために投稿を編集しました – Leva7
あなたが今投稿したkvはBoxLayout用です。メッセージを作成することを意味しましたか? – inclement
メッセージ参照の部分を省略しましたが、ここでは – Leva7