Python kivy: 无法在 on_press 中传递数据
Python kivy: Can't pass data in on_press
我是新手基维,我有一点小问题。我想用“on_press”调用函数,但传递的数据是相同的。
如果数据库中的最后一条记录是“堆栈”,每个 on_press 按钮将 return “堆栈”并绕过其他字符串。
我需要帮助
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 Programming FAQ 中有解释。我相信可以通过将 Button
的 'on_release' 更改为:
来解决此问题
on_release=lambda x, n=row[1]: self.popup(n)
如上所述link。
我是新手基维,我有一点小问题。我想用“on_press”调用函数,但传递的数据是相同的。 如果数据库中的最后一条记录是“堆栈”,每个 on_press 按钮将 return “堆栈”并绕过其他字符串。
我需要帮助
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 Programming FAQ 中有解释。我相信可以通过将 Button
的 'on_release' 更改为:
on_release=lambda x, n=row[1]: self.popup(n)
如上所述link。