class kiv(Widget): def __init__(self, **kwargs): super().__init__(**kwargs) self.bt = Button(text="Hello", size=(200, 100), pos=(300, 100), background_color=(.2, .3, .4, 1), on_press=self.rmv) def rmv(self, event): print(self) # <__main__.kiv object at ...> print(self.bt) # <kivy.uix.button.Button object at 0x7f2e433f2430> self.remove_widget(self) # ★
このコードで、作成したButtonだけが削除されます。
最後のremove_widget(self)指定しており、ここの理解が少しできません。
勿論、remove_widget(self.bt)でも同様の動作となるのですが、
このselfはprintの結果の通り、kivインスタンス全体を指しています。
なので、selfを指定するとButtonだけでなく該当interfaceに属する全てが削除されるのではないかと考えてしまいます...
remove_widgetが何か特別な処理をしているとしか考えられないのですが、このあたりをどう解釈するとよいのでしょうか。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/13 06:41 編集