请考虑以下代码段:
from tkinter import *
import tkinter.filedialog as fd
def mycallback(event):
fname = fd.askopenfilename()
print(fname)
root = Tk()
b1 = Button(root, text='Hello!')
b1.bind('<Button-1>', mycallback)
b1.pack()
root.mainloop()
按下按钮b1后,会出现一个打开的对话框。如果我在选择文件后按OK或CANCEL,程序将以退出代码139崩溃。
这里有什么问题?
我在OS X 10.6.8上使用Python 3.4。
答案 0 :(得分:0)
单击按钮时调用函数可以使用按钮的callback
参数完成。
因此,不应将<Button-1>
绑定到按钮,而应使用
b1 = Button(root, text='Hello!', command=mycallback)
然后你也应该从mycallback函数中删除event参数,因为命令不会传递任何参数。
这如何解决你的问题,我真的不知道。但根据你的评论,它确实如此。
有关Button(和任何其他)窗口小部件的更多信息,请参阅effbot.org