当我更新.py中的ObjectProperty时,我想更新.kv中的当前对象(如果它是ObjectProperty以外的其他类型,则可以正常工作),但是当我更新ObjectProperty时,不会影响.kv >
.py:
from kivy.app import App
from kivy import properties as kp
from kivy.event import EventDispatcher
from kivy.uix.boxlayout import BoxLayout
class TestEvent(EventDispatcher):
def __init__(self, name):
super().__init__()
self.name = name
class Main(BoxLayout):
test_event = kp.ObjectProperty(TestEvent("a"))
def change_test(self, *args):
print("change_test", args)
self.test_event = TestEvent("b")
print(self.test_event.name)
class TestApp(App):
def build(self):
return Main()
if __name__ == '__main__':
TestApp().run()
.kv:
<Main>:
Button:
text: "test: %s" % root.test_event.name
on_press: root.change_test()
当我按下按钮时,我希望按钮变为b
在控制台中有效:
change_test ()
b