2017-06-19 194 views
2

我試圖在單擊它時刪除當前按下的按鈕。我的代碼如下:將當前點擊的按鈕傳遞給Kivy中的on_press(Python)

self.tp.get_current_tab().content.children[0].remove_widget(self.btn) 
self.tp.switch_to(self.tp.get_current_tab()) 

但self.btn被覆蓋。這裏是我創建我的按鈕的地方:

self.btn = Button(text=self.btn.text, size_hint=(0.5,0.5), on_press=self.remove_filter_btn) 

有沒有辦法將當前單擊的按鈕傳遞給remove_filter_btn?

謝謝。

回答

2

remove_filter_btn應該已經接收到調用按鈕的實例作爲參數。

實施例:

from kivy.app import App 
from kivy.uix.boxlayout import BoxLayout 
from kivy.uix.button import Button 


class MainWindow(BoxLayout): 
    def __init__(self, **kwargs): 
     super(MainWindow, self).__init__(**kwargs) 
     self.orientation= 'vertical' 
     for i in range(5): 
      self.btn = Button(text='Button ' + str(i) , 
           on_press=self.remove_filter_btn) 
      self.add_widget(self.btn) 

    def remove_filter_btn(self, instance): 
     self.remove_widget(instance) 

class MyApp(App): 
    def build(self): 
     return MainWindow() 

if __name__ == '__main__': 
    MyApp().run() 

執行:

enter image description here

+0

感謝。這很好。 – user48944