代码之家  ›  专栏  ›  技术社区  ›  Marcel Alexandru

Tkinter-在图形用户界面中更新函数时循环函数

  •  -1
  • Marcel Alexandru  · 技术社区  · 8 年前

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

    因此,我可以从telethon获取所有来自telegram的新消息:

    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 回复  |  直到 8 年前
        1
  •  0
  •   Mike - SMT    8 年前

    我会用 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()
    

    我认为您可能需要解决的问题是跟踪最后一封或最后一封邮件,这样就不会重新加载旧邮件。