gpt4 book ai didi

python - Tkinter lambda 函数

转载 作者:太空狗 更新时间:2023-10-30 02:05:32 25 4
gpt4 key购买 nike

<分区>

(如“家庭作业”标签所示,这是计算机科学项目的一部分。)

我正在使用 tkinter 在 Python 中编写Jeopardy! 模拟,我遇到了一个关于在按钮中使用 lambda 函数的大问题。假设 root = Tk()categories 是一个列表。

# Variable to keep the buttons
root._buttons = {}

# Display headers on top of page
for i in range(5):
# Get category name for display in main window
name = categories[i]
b = Label(root, text=fill(name.upper(), 10), width=18, height=3,\
bg="darkblue", fg="white", font=("Helvetica bold", "", 11))
b.grid(row=0, column=i)

# Create list of buttons in that variable (root._buttons)
btnlist = [None]*5

# Display individual questions
for j in range(5):

# Make a button for the question
b = Button(root, text="$" + str(200 * (j+1)), width=8, height=1,
bg="darkblue", fg="orange", font=("Impact", "", 30))
b.cat = name
b.value = 200 * (j + 1)
b.sel = lambda: select(b.cat, b.value)

# Add callback event to button
print(b.cat, b.value, b.sel)
b.config(command=b.sel)

# Add button to window
b.grid(row=j+1, column=i)

# Append to list
btnlist[j] = b

root._buttons[categories[i]] = btnlist

有关所有代码,请参阅 my little Code Viewer (under construction!)

问题似乎出现在 lambda: select(b.cat, b.value) 处,因为当我单击面板上的任何按钮时,它总是转到最后一个按钮董事会。我尝试过其他方法,不幸的是所有方法都使用 lambda,而且我还没有看到任何不涉及 lambda 的方法。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com