【问题标题】:Python Kivy: How to check if a button is clicked or not?Python Kivy:如何检查按钮是否被点击?
【发布时间】:2020-06-29 14:49:41
【问题描述】:

我必须创建多个按钮(为给定列表中的每个元素)。为此,我使用 for 循环。按下的按钮必须被记录下来。但是,self.i 的值不会存储在该特定实例中,即最后一个值(在这种情况下 - 2 被存储,在循环完成后)。我该如何解决这个错误?有没有办法添加条件语句来检查按钮是否被点击,如果是,则将self.i的值存储在另一个变量中。

class InfoPage(GridLayout):
    def __init__(self, **kwargs):
        super(InfoPage, self).__init__(**kwargs)
        self.cols = 1
        self.peers = ["ishika", "nate", "nf"]
        for self.i in range(3):

            self.peers[self.i] = Button(text=peers[self.i], id=str(self.i))
            self.add_widget(self.peers[self.i])
            self.peers[self.i].bind(on_press=self.add)

    def add(self, _):
        id_of_button_pressed = self.peers[self.i].id
        print(id_of_button_pressed)

【问题讨论】:

    标签: python python-3.x python-2.7 kivy kivy-language


    【解决方案1】:

    您的add() 方法正在使用self.i,这将是self.i__init__() 方法(2) 中设置的最后一个值。所以你只需要将你的 add() 方法修改为:

    def add(self, button):
        id_of_button_pressed = button.id
        print(id_of_button_pressed)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-08
      • 2013-05-09
      • 2013-07-26
      • 1970-01-01
      • 2014-05-19
      • 2014-12-28
      • 1970-01-01
      • 2011-02-16
      相关资源
      最近更新 更多