我有此代码,使用该窗口小部件的名称MainApp()无法删除该窗口小部件。 m.remove_widget(Butt())。
我了解我错误地访问了此小部件,但是我不知道如何正确地进行操作。 告诉我如何使用小工具的名称删除小工具?
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.colorpicker import ColorPicker
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.button import Button
class Butt(Button):
def add_wid1(self):
MainApp.m.add_widget(Box())
MainApp.m.add_widget(Butt1())
class Butt1(Button):
def on_press(self):
print('111')
MainApp().m.remove_widget(MainApp().m.children[1]) #this code works
MainApp().m.remove_widget(Butt()) #this code not working
class Box (ColorPicker):
size_hint=.50, .25
class Pict (Widget):
pass
class MainApp (App):
m = FloatLayout()
def build (self):
pic = Pict()
MainApp.m.add_widget(pic)
MainApp.m.add_widget(Butt())
return MainApp.m
if __name__ == '__main__':
MainApp().run()
答案 0 :(得分:0)
您必须使用要删除的Butt
的实例。一种简单的方法是在您的Butt
方法中保存对该build
的引用:
self.butt = Butt()
MainApp.m.add_widget(self.butt)
,然后使用以下命令将其删除:
app = App.get_running_app()
MainApp.m.remove_widget(app.butt)