Python Gui (Tkinter) 进程
Python Gui (Tkinter) procces
这是我的代码:
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'
您需要正确操作您的界面。
在 fetch()
函数中填充各种电子邮件字段,该函数在按下 <Return>
键时调用,而不是在单击 Send
按钮时调用。如果您填写表单字段,然后按 <Return>
,然后单击 Send
,它将尝试发送电子邮件。
我不知道这是否是 最好的 方法,但可以通过将与 <Return>
相同的绑定添加到 [=13] 来使其工作=] 按钮:
b1 = Button(root, text='Send', command=sendMail)
b1.bind("<Button-1>", (lambda event, e=ents: fetch(e)))
另一种方法是在构建电子邮件之前在 sendMail()
内调用 fetch()
。
更好的 UI 改进是禁用 Send
按钮,直到提供了所有必填字段,但这超出了这个问题的范围。
这是我的代码: 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'
您需要正确操作您的界面。
在 fetch()
函数中填充各种电子邮件字段,该函数在按下 <Return>
键时调用,而不是在单击 Send
按钮时调用。如果您填写表单字段,然后按 <Return>
,然后单击 Send
,它将尝试发送电子邮件。
我不知道这是否是 最好的 方法,但可以通过将与 <Return>
相同的绑定添加到 [=13] 来使其工作=] 按钮:
b1 = Button(root, text='Send', command=sendMail)
b1.bind("<Button-1>", (lambda event, e=ents: fetch(e)))
另一种方法是在构建电子邮件之前在 sendMail()
内调用 fetch()
。
更好的 UI 改进是禁用 Send
按钮,直到提供了所有必填字段,但这超出了这个问题的范围。