Я хочу, чтобы remove
дочерние элементы из моего RootWidget
в приведенном ниже примере, но при нажатии на RootButton удаляются оба дочерних виджета (как RED, так и GREEN). Однако в списке self.children
, напечатанном в оболочке, остается еще один оставшийся ребенок, но не видеть в RootWidget. Что здесь не так?Kivy remove_widget удаляет все дочерние виджеты с экрана
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
RED = (1, 0, 0, 1)
GREEN = (0, 1, 0, 1)
class RootWidget(Button):
def __init__(self, *args, **kwargs):
super(RootWidget, self).__init__(*args, **kwargs)
self.add_widget(Button(background_color = RED), 0)
self.add_widget(Button(background_color = GREEN), 1)
self.bind(on_press = self.btn_call_back)
def btn_call_back(self, v):
try:
print "_" * 60
print self.children
print "+" * 60
self.remove_widget(self.children[0])
print self.children
print "_" * 60
except IndexError:
print "no children any more!"
class TutorApp(App):
def build(self):
return RootWidget()
if __name__ == "__main__":
TutorApp().run()