Python Tkinter-在GUI中更新函数时循环函数
如何循环在窗口中显示值的函数 因此,我从telethon获得了这个功能,可以从电报中获取所有新消息:Python Tkinter-在GUI中更新函数时循环函数,python,tkinter,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
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()
但问题是,如果我不重新打开应用程序,消息不会得到更新。。知道如何使它循环并在我的聊天屏幕上更新吗?我会使用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()
我认为您可能需要解决的问题是跟踪最后一条消息或最后一条消息,这样您就不会重新加载旧消息。将更新文本框的代码放入函数中,然后使用按钮调用函数或使用
after
方法按计划调用函数。同意@Novel。这是一个简单的修复,可以使用after()
方法通过按钮或定时循环完成。如果它是一个实时提要,我会使用after()
方法来检查是否有新消息,如果消息是新的,则拉取消息并将其插入文本框。