我有一個 kv 語言的標簽背景圖像,但在 python 中重新編輯它,為我的標簽添加 HoverBehavior 屬性。曾是:<RockLayout>canvas:? ? Rectangle:? ? ? ? pos: self.pos? ? ? ? size: self.size? ? ? ? source: 'data/images/gui_elements/rock_label.png'變成:class RockLayout(FloatLayout, HoverBehavior):? # BoxLayoutdef __init__(self, widget, **kwargs):? ? super().__init__(**kwargs)? ? widget.size_hint = (.8, .8)? ? widget.pos_hint = ({'center_x': .5, 'center_y': .52})? ? self.add_widget(widget)? ? with self.canvas.before:? ? ? ? Rectangle(source='data/images/gui_elements/rock_label.png', pos=self.pos, size=self.size)def on_enter(self, *args):? ? self.canvas.before.clear()? ? with self.canvas.before:? ? ? ? Rectangle(source='data/images/gui_elements/rock_label_hover.png', pos=self.pos, size=self.size)def on_leave(self, *args):? ? self.canvas.before.clear()? ? with self.canvas.before:? ? ? ? Rectangle(source='data/images/gui_elements/rock_label.png', pos=self.pos, size=self.size)這導致canvas.before中的self.pos在初始化時不會更新,并且self.pos等于 0。當我調整窗口大小時,圖像的位置不會改變。如何在 python 中而不是 .kv 語言中聲明背景圖像?現在就發生了當我調整窗口大小時 self.pos 沒有更新我需要得到什么如何在python中正確使用kivylayuot背景圖像?
1 回答

慕田峪4524236
TA貢獻1875條經驗 獲得超5個贊
def on_size(self, *args): self.bg.size = self.size self.bg.pos = self.pos
添加回答
舉報
0/150
提交
取消