Tkinter-在GUI中更新功能时循环功能

时间:2018-08-06 18:28:39

标签: python tkinter

如何循环在窗口中显示值的函数?

因此,我具有telethon的此功能,可以从电报中获取所有新消息:

def get_message():
    for message in client.iter_messages('@snoopdoggystyledogg', limit=10):
        msg_history = utils.get_display_name(message.sender), message.message
        return msg_history

我要显示它:

messages = Text(root)
messages.insert(INSERT, '')
messages.insert(INSERT, get_message())

messages.pack()

但是问题是,如果我不重新打开应用程序,消息将不会得到更新。是否知道如何使其循环并在我的聊天屏幕上进行更新?

1 个答案:

答案 0 :(得分:0)

我会使用after()继续循环。

一个简单的示例如下:

from tkinter import *
# other imports for your client message reader


root = Tk()

def get_message():
    for message in client.iter_messages('@snoopdoggystyledogg', limit=10):
        msg_history = utils.get_display_name(message.sender), message.message
        messages.insert(INSERT, msg_history)
    root.after(5000, get_message)

messages = Text(root)
messages.pack()
messages.insert(INSERT, '')
get_message()

root.mainloop()

我认为您可能需要解决的问题是跟踪最后一条或多条消息,以免重新加载旧的消息。