将当前单击的按钮作为参数传递给 Kivy 中的 on_press (Python)
Pass Currently Clicked Button As Argument to on_press in Kivy (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?
谢谢。
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()
执行:
我正在尝试在单击时删除当前按下的按钮。我的代码如下:
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?
谢谢。
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()
执行: