【问题标题】:Pass Currently Clicked Button As Argument to on_press in Kivy (Python)将当前单击的按钮作为参数传递给 Kivy (Python) 中的 on_press
【发布时间】: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?

谢谢。

【问题讨论】:

    标签: python button widget kivy


    【解决方案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()
    

    执行:

    【讨论】:

      猜你喜欢
      • 2017-02-10
      • 1970-01-01
      • 2021-01-20
      • 1970-01-01
      • 2015-07-27
      • 2022-08-03
      • 2021-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多