对于我的程序,我将项目存储在数据库中。我使用名为find_all()的函数来获取所有这些项,并将它们添加到名为“ items_to_display”的列表/数组中。然后,我使用for循环运行列表items_to_display的长度来创建按钮。按钮的文本是位置索引处的items_to_display。该按钮的命令将一个项目添加到列表框中。该项目应与位置索引处的items_to_display相同,但是添加的项目始终是items_to_display的最后一个位置的项目。函数all_items()在类内部,而add_to_listbox不是。
我尝试在不同的for循环中创建按钮,但这没什么区别。我已经在位置索引处显示了items_to_display,以确保最后一个位置的项目不是唯一显示的项目。
def all_items(self, display_frame, order):
items_to_display = mdb.find_all()
for i in range(len(items_to_display)):
Button(display_frame, text = items_to_display[i],command = lambda: add_to_listbox(items_to_display[i], order, i)).grid(row = i, column = 0)
def add_to_listbox(data, order, i):
print(data)
order.insert(i, data)
order.pack()
我希望在按下按钮时将其中显示的文本添加到列表框中。