将当前单击的按钮作为参数传递给 Kivy (Python) 中的 on_press
Posted
技术标签:
【中文标题】将当前单击的按钮作为参数传递给 Kivy (Python) 中的 on_press【英文标题】:Pass Currently Clicked Button As Argument to on_press in Kivy (Python) 【发布时间】:2017-11-22 02:05:36 【问题描述】:我试图在单击时删除当前按下的按钮。我的代码如下:
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?
谢谢。
【问题讨论】:
【参考方案1】: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()
执行:
【讨论】:
以上是关于将当前单击的按钮作为参数传递给 Kivy (Python) 中的 on_press的主要内容,如果未能解决你的问题,请参考以下文章