我在数组中保存了一些按钮:
buttons = []
labels.append(tk.Label(fr2, text="", pady=15))
labels.append(tk.Label(fr3, text="", pady=15))
后来我访问数据库的一个表,并使用“for in”循环该表,这样我就可以从程序中的表中获取所有行。对于每一行,我都会激活一个带网格的按钮。
i = 0
if len(records) > 0:
for row in records:
print("current_date", ", target date")
print(current_date, row[2])
date = current_date - row[2]
labels[i] = tk.Label(fr2, text=row[1], pady=15)
labels[i].grid(row=i, column=0, sticky='we')
labels[i+1] = tk.Label(fr3, text=date, pady=15)
labels[i+1].grid(row=i, column=0, sticky='we')
buttons[i] = tk.Button(fr4, text="Restart", command=restart, pady=13)
buttons[i].grid(row=i, column=0, sticky='we')
buttons[i+1] = tk.Button(fr5, text="Delete", command=delete, pady=13)
buttons[i+1].grid(row=i, column=0, sticky='we')
i = i + 1
如何获取程序运行时我按下的按钮的索引?
您可以将参数传递给用作命令的函数。
示例:
def myButttonCommand(index):
print("this is the "+index+"th' button")
buttons = []
for i in range (0,10):
buttons[i] = tk.Button(command=myButtonCommand(i))
我不确定我是否明白你的答案,但你可以使用这段代码。下面,Tkinter 中有一组按钮,单击其中一个按钮时可以访问其中一个按钮的索引:
import tkinter as tk
def printIndex(i):
print("Index: " + str(i))
buttons = []
for i in range (5):
buttons.append(tk.Button(command=lambda i=i:printIndex(i)))
buttons[i].grid(row=i, column=0)