我有以下代码:
当点击按钮时,应该将其移除。但是这并没有发生。如果我在kv文件中删除
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
class GUI(FloatLayout):
def remove(self):
self.remove_widget(self.ids.test)
class GUIApp(App):
def build(self):
return GUI()
if __name__ == '__main__':
GUIApp().run()
对应的 kv
文件如下:
#:kivy 1.9.1
<GUI>:
BoxLayout:
Button:
id: test
text: 'Test'
on_press: root.remove()
当点击按钮时,应该将其移除。但是这并没有发生。如果我在kv文件中删除
BoxLayout
,程序将按预期工作,并且按钮将被删除。为什么会发生这种情况,以及如何删除在kv文件中声明的小部件?(我知道我可以用self.parent.remove_widget(self)
替换Button的on_press
,但是我除了删除小部件之外还有root.remove()
中的代码。)