0
remove
子ウィジェットを下の例で私のRootWidget
から削除しますが、RootButtonをクリックすると両方の子ウィジェット(REDとGREENの両方)が削除されます。しかし、シェル内にself.children
のリストが印刷されていても、2番目の子は残りますが、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()