【发布时间】:2018-04-19 13:49:01
【问题描述】:
尝试运行此代码时,我收到一个关键错误提示
KeyError: <tkinter.Button object .!button4>
所有按钮 1-5 的按钮编号都不同。
我不明白这意味着什么,因为我以为我指的是正确的按钮。请帮忙!这是我的代码:
import tkinter as tk
def button_click(event = None):
which_button = event.widget
var = f[which_button]
if var in f:
var.set(f[var])
else:
for i, j in enumerate(v):
if j == v[i]:
var.set(k[i])
window = tk.Tk()
window.title("Flashcards")
k=[]
v=[]
f={"Bonjour": "Hello",
"Lundi": "Monday",
"Parler": "To Talk",
"Manger": "To Eat",
"Dormir": "To Sleep"}
for key,val in f.items():
k.append(key)
v.append(val)
for i in range(5):
s = tk.StringVar()
s.set(k[i])
b = tk.Button(window, textvariable = s, width = 10)
b.bind("<Button-1>", button_click)
b.grid(row = 0, column = i)
window.mainloop()
【问题讨论】:
-
你做了什么来调试这个?你检查过
which_button是什么,f是什么?显然,which_button不是f的成员。 -
不,按钮是
tk.Button的实例。"Bonjour"、"Lundi"等是字符串,不是按钮。