为什么在 tkinter python 中删除 tk.Text 中的文本需要时间?

问题描述 投票:0回答:1

在下面的 python 代码中,我使用“message_entry.delete(1.0, tk.END)”删除输入到文本小部件中的文本。问题是它会等待 5 秒才能删除文本。我知道这是因为下面脚本中的“time.sleep(5)”。

事实是,“message_entry.delete(1.0, tk.END)”命令位于此睡眠命令之上,因此它应该在此睡眠命令之前执行并立即删除文本。为什么它在等待?我想在提取消息后立即删除文本。

            import tkinter as tk
            from tkinter import ttk
            from datetime import datetime
            from PIL import Image, ImageTk
            import time

            def clear_default_text(event):
                message = message_entry.get(1.0, tk.END) 
                ask = "Ask me anything..."
                if ask in message:
                    message_entry.delete(1.0, tk.END)

            def send_message(event=None):
                message = message_entry.get(1.0, "end-1c") 
                message = message.strip()
                message_entry.delete(1.0, tk.END)
                
                if not message:
                    pass 
                else:
                    time.sleep(5)            


            root = tk.Tk()

            root.title("Chat")

            # Maximize the window
            root.attributes('-zoomed', True)

            style = ttk.Style()
            style.theme_use("clam")


            message_entry = tk.Text(root, padx=17, insertbackground='white', width=70, height=1, spacing1=20, spacing3=20, font=('Open Sans', 14))
            message_entry.pack(side=tk.LEFT, padx=(500, 0), pady=(0, 70))  
            #message_entry.insert(0, "Ask me anything...")
            message_entry.insert(1.0, "Ask me anything...")
            message_entry.mark_set("insert", "%d.%d" % (0,0))
            message_entry.bind("<Key>", clear_default_text)  # Bind the Key event
            message_entry.bind("<Return>", send_message)
            #message_entry.bind("<Button-1>", click)

            message_entry.focus_set()  

            root.mainloop()

python tkinter tkinter-entry tkinter-text
1个回答
0
投票

message_entry.delete(1.0, tk.END)
之后添加此行:

message_entry.update()
© www.soinside.com 2019 - 2024. All rights reserved.