나는 항상 새로운Tkinter python 딜레마
전자 메일을 확인할 tkinter를 사용하여 python 프로그램을 작성하려고합니다. 내가 데 문제는 현재 이메일이 나는 사용자가 올바른
사용자 이름과 암호를 입력하기 전에 내 프로그램을 실행하지 않기 때문에 사용자
가 버튼을 명중하는 경우에만 업데이트되는 것입니다.
어떻게 사용자가없는 경우 내가
정확한 데이터를 입력하지만사용자가 가지고있는 일단 동시에 끊임없이 새로운 이메일을 확인하는 프로그램이 새 이메일을 확인하지 않습니다 있는지 확인 할 데이터
입력 아래 내 코드의 일부이다 :
def printer(self):
self.mail=StringVar()
self.username=self.userinput.get()
self.MailPass=self.password.get()
self.unread = int(feedparser.parse("https://" + self.username + ":" + self.MailPass +"@mail.google.com/gmail/feed/atom")["feed"]["fullcount"]) #gmail command
self.mail.set("Unread Emails:"+str(self.unread))
self.mail_label=Label(self.frame,textvariable=self.mail)
self.mail_label.grid(row=2,column=0,sticky=W)
return
def showGUI(self):
now=datetime.datetime.now()
dhtreader.init()
s = dhtreader.read(11,18)
if s == None:
s=(1,1)
self.temp.set("Temperature:"+str(s[0])+" C")
self.humidity.set("Humidity:"+str((s[1]))+"%")
current_time = str(now.hour)+':'+str(now.minute)+':'+str(now.second)
current_date=(str(now.month)+':'+str(now.day)+':'+str(now.year))
self.time1.set("Time:"+current_time)
self.date.set("Date:"+current_date)
self.frame.after(100,self.showGUI)
def main():
root=Tk()
app=GUI(master=root)
app.showGUI()
root.title('Controller GUI')
root.mainloop()
if __name__=='__main__':
main()
프린터가 버튼을 누를 때 실행되는 방법이다. showGUI는 모든 업데이트가 이루어지는 곳입니다.
프린터 끝에서 self.frame.after (0, self.showGUI) 또는 self.showGUI()를 호출하면 내 프로그램이 정지 함 – user3064033
@ user3064033 : 다른 문제인 것 같습니다. 'showGUI'가 느리거나 막히는 ('dhtreader.read (11, 18)'과 같은) 경우, GUI를 멈추지 않고 메인 스레드에서 할 수 없습니다. 아무리 당신이 원래의 문제를 해결하더라도, 당신은 그 새로운 문제로 끝날 것입니다. 그게 문제라면, GUI 애플 리케이션이 얼어 버리는 이유 (http://stupidpythonideas.blogspot.com/2013/10/why-your-gui-app-freezes.html)를 참조하십시오. – abarnert