Python Gui(Tkinter)进程

时间:2015-03-04 11:31:40

标签: python user-interface tkinter thread-safety

这是我的代码: http://pastebin.com/eN6xZ40P

我有两个我无法理解的错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\python26\lib\lib-tk\Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "D:/Users/user-pc/Desktop/mail/someTK.py", line 32, in sendMail
    msg = MIMEText(output['Body'])
KeyError: 'Body'

1 个答案:

答案 0 :(得分:0)

您需要正确操作界面。

各种电子邮件字段填充在fetch()函数中,该函数在按下<Return>键时调用,而不是在单击Send按钮时调用。如果您填写表单字段,请按<Return>,然后点击Send它将尝试发送电子邮件。

我不知道它是否是最佳方式,但可以通过向<Return>添加与Send相同的绑定来使其工作。 1}}按钮:

    b1 = Button(root, text='Send', command=sendMail)
    b1.bind("<Button-1>", (lambda event, e=ents: fetch(e)))

另一种方法是在构建电子邮件之前在fetch()内拨打sendMail()

更好的UI改进是禁用Send按钮,直到提供了所有必填字段,但这超出了此问题的范围。