Tkinter -- TypeError: retrieve_input() 需要 1 个参数(给了 0 个)
我在使用选项按钮、复选框和文本区域时遇到了错误,取值也很困难。
错误信息:TypeError: retrieve_input() 这个函数需要一个参数,但我没有给任何参数。还有一个错误是:NameError: checkCmd 这个名字没有被定义。
#!C:/Python27/python.exe
from Tkinter import *
import ImageTk, Image
def retrieve_input(event):
getter = text.get(text)
getterV = v.get(v)
getterChk = chkvar.get(chkvar)
root.destroy()
root = Tk()
root.title('HADOUKEN!')
text = Text(root, height=16, width=40)
scroll = Scrollbar(root, command=text.yview)
text.configure(yscrollcommand=scroll.set)
text.grid(sticky=E)
scroll.grid(row=0,column=1,sticky='ns')
text.focus()
text.bind(retrieve_input)
v = ""
chkvar = IntVar()
chkvar.set(0)
c = Checkbutton(root, text="CaseIt", variable=chkvar)
c.grid(row=1,column=0,sticky=W)
radio1 = Radiobutton(root, text="Src", variable=v, value=1)
radio1.grid(row=1,column=0)
radio1.focus()
radio2 = Radiobutton(root, text="Dst", variable=v, value=2)
radio2.grid(row=2,column=0)
b1 = Button(root, text="Submit", command=retrieve_input)
b1.grid(row=1, column=2)
img = ImageTk.PhotoImage(Image.open("Hadoken.gif"))
panel = Label(root, image = img)
panel.grid(row=0, column=2)
root.mainloop()
if checkCmd.get() == 0:
print "yes"
else:
print "no"
1 个回答
0
当你把一个函数当作命令的值来用时,这个命令不会像绑定那样自动传入一个事件对象。你的函数需要一个参数,但按钮没有给它传,所以就出错了。
至于说checkCmd
未定义的错误……这正是问题所在。你并没有定义任何叫这个名字的东西。
调试的第一条规则:要相信错误信息所说的是真的。