Я пытаюсь создать программу, которая собирает общее количество непрочитанных сообщений в папке «Входящие». У меня нет проблем со сбором данных, проблема заключается в том, чтобы отображать их в режиме реального времени в текстовом поле, чтобы, когда приходит новое письмо, число тикало, вместо того, чтобы создавать новую строку под ним или иметь чтобы полностью перезапустить программу.
Задав этот предыдущий вопрос (Как изменить вывод данных, полученных извне, в реальном времени в текстовом окне программы?) отличный член сообщества StackOverflow дал мне для работы следующий код.
Теперь он собирает данные из моего почтового ящика как обычно, но не публикует результаты. Я думаю, это должно быть как-то связано с тем, как я использую [информацию], но я в полной растерянности.
Спасибо за помощь!
#! /usr/bin/env python3.4
import imaplib
import email
import tkinter as tk
WIDTH = 500
HEIGHT = 500
def update():
mail=imaplib.IMAP4_SSL('imap.gmail.com',993)
mail.login('email"gmail.com','password')
mail.select("Submissions")
typ, messageIDs = mail.search(None, "UNSEEN")
messageIDsString = str( messageIDs[0], encoding='utf8' )
listOfSplitStrings = messageIDsString.split(" ")
number = len(listOfSplitStrings)
if number == 0:
info['text'] = 'no submissions'
else:
info['text'] = '{} submissions[s]'.format(number)
root.after(5000, update)
root = tk.Tk()
root.title('submissions counter')
x = (root.winfo_screenwidth()//2) - (WIDTH//2)
y = (root.winfo_screenheight()//2) - (HEIGHT//2)
root.geometry('{}x{}+{}+{}'.format(WIDTH, HEIGHT, x, y))
info = tk.Label(root, text='no submissions')
info.pack
update()
root.mainloop()