克隆具有其他功能的 tkinter 按钮
Cloning tkinter Buttons with other function
现在我正在制作一本 python phone 书,其布局如下:
|姓名|姓 |
现在我想为每个联系人姓名和姓氏创建一个按钮,因此 1 个联系人 * n 有 2 个按钮。如果我按名字或姓氏,应该会打开一个包含更多联系人详细信息的框。
谁能帮帮我?
到目前为止我尝试了以下操作:
prename = ["John", "Jack"]
surname = ["Tompson", "Daniels"]
x = 0
y = 0
for pn in prename:
pre = Button(main, text=pn)
pre.grid(row=x, column=0)
x += 1
for sn in surname:
sur = Button(main, text=sn)
sur.grid(row=y, column=1)
y += 1
您需要将按钮与按下它们时要执行的功能相关联。我使用 lambda
将特定名称传递给函数调用。
还有;当您需要循环索引时,使用 enumerate
更具可读性。
from tkinter import *
main = Tk()
prename = ["John", "Jack"]
surname = ["Tompson", "Daniels"]
def get_prename(n): # Callback function for prename buttons
print(n)
def get_surname(n): # Callback function for surname buttons
print(n)
for x, pn in enumerate(prename):
pre = Button(main, text=pn, command=lambda pn=pn: get_prename(pn))
pre.grid(row=x, column=0)
for y, sn in enumerate(surname):
sur = Button(main, text=sn, command=lambda sn=sn: get_surname(sn))
sur.grid(row=y, column=1)
现在我正在制作一本 python phone 书,其布局如下:
|姓名|姓 |
现在我想为每个联系人姓名和姓氏创建一个按钮,因此 1 个联系人 * n 有 2 个按钮。如果我按名字或姓氏,应该会打开一个包含更多联系人详细信息的框。 谁能帮帮我?
到目前为止我尝试了以下操作:
prename = ["John", "Jack"]
surname = ["Tompson", "Daniels"]
x = 0
y = 0
for pn in prename:
pre = Button(main, text=pn)
pre.grid(row=x, column=0)
x += 1
for sn in surname:
sur = Button(main, text=sn)
sur.grid(row=y, column=1)
y += 1
您需要将按钮与按下它们时要执行的功能相关联。我使用 lambda
将特定名称传递给函数调用。
还有;当您需要循环索引时,使用 enumerate
更具可读性。
from tkinter import *
main = Tk()
prename = ["John", "Jack"]
surname = ["Tompson", "Daniels"]
def get_prename(n): # Callback function for prename buttons
print(n)
def get_surname(n): # Callback function for surname buttons
print(n)
for x, pn in enumerate(prename):
pre = Button(main, text=pn, command=lambda pn=pn: get_prename(pn))
pre.grid(row=x, column=0)
for y, sn in enumerate(surname):
sur = Button(main, text=sn, command=lambda sn=sn: get_surname(sn))
sur.grid(row=y, column=1)