【问题标题】:Python kivy: Can't pass data in on_pressPython kivy:无法在 on_press 中传递数据
【发布时间】:2020-12-14 10:56:11
【问题描述】:

我是一个新手,我有一个小问题。我想用“on_press”调用一个函数,但传递的数据是一样的。 如果数据库中的最后一条记录是“Stack”,则每个 on_press 按钮都会返回“Stack”并绕过其他字符串。

我需要帮助

    try:
        conn = BddConnection.start()
        cursor = conn.cursor()
        product = cursor.execute("""SELECT * from produits """)
        rows = cursor.fetchall()
        for row in rows:
            self.manager.ids.test.ids.grid.add_widget(Label(text=str(row[0]), size_hint_x=.1))
            self.manager.ids.test.ids.grid.add_widget(Label(text=str(row[1]), size_hint_x=.2))
            self.manager.ids.test.ids.grid.add_widget(Label(text=str(row[3]), size_hint_x=.2))
            self.manager.ids.test.ids.grid.add_widget(Label(text=str(row[4]), size_hint_x=.1))
            self.manager.ids.test.ids.grid.add_widget(Button(text=str("Voir l'url"), value=row[2], size_hint_x=.1, on_release=lambda x:self.popup(row[1]), size_hint=(0.0, 0.3)))

    except mysql.connector.Error as error:
        print("Pas de produit : {}".format(error))

【问题讨论】:

    标签: python kivy kivy-language


    【解决方案1】:

    您看到的问题在 python Programming FAQ 中进行了解释。我相信可以通过将Button 的“on_release”更改为:

    on_release=lambda x, n=row[1]: self.popup(n)
    

    如上述链接所述。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多