获取数组中按钮的索引(按下时)

问题描述 投票:0回答:2

我在数组中保存了一些按钮:

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

如何获取程序运行时我按下的按钮的索引?

python arrays user-interface button tkinter
2个回答
0
投票

您可以将参数传递给用作命令的函数。

示例:

def myButttonCommand(index):

   print("this is the "+index+"th' button")

buttons = []

for i in range (0,10):

   buttons[i] = tk.Button(command=myButtonCommand(i))

0
投票

我不确定我是否明白你的答案,但你可以使用这段代码。下面,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)
© www.soinside.com 2019 - 2024. All rights reserved.