【发布时间】:2021-09-28 07:11:51
【问题描述】:
我有一个很长的自动化程序,它使用很长的 WHILE 循环。随着过程的进行,我希望能够更新文本框中的文本。但是,根据我所做的研究,这似乎是不可能的,并且当 WHILE 循环完成时,所有结果都会立即“转储”。这对我没用。
如果文本框可以随着 SHELL 的更新而更新,我会很高兴,因为它与实际过程同步。
我制作了一个简单的 TEST 文件,看看我是否可以让它工作。以下是 TEST 文件的代码:
from tkinter import *
import time
import tkinter as tk
import tkinter.font as tkFont
root=Tk()
myFont = tkFont.Font(family = 'Helvetica', size = 18, weight = 'bold')
text_cell_bg="cyan" #TEXT CELL BACKGROUND COLOR
text_cell_fg="black" #TEXT CELL TEXT COLOR
text_cell_height=2 #TEXT CELL HEIGHT
text_cell_width=30 #TEXT CELL WIDTH
button_bg="blue" #BUTTON CELL BACKGROUND COLOR
button_fg="white" #BUTTON CELL TEXT COLOR
button_height=2 #BUTTON CELL HEIGTH
button_width=10 #BUTTON CELL WIDTH
textbox=Text(root)
textbox.insert(END, 'Default Text\n\n')
def count_print ():
count = 0
letter = "A"
while count < 5:
print("Count = ",count,". Letter = ",letter,".")
textbox_value = "Count = {}. Letter = {}.\n".format(count,letter)
textbox.insert(1.0, textbox_value)
count += 1
time.sleep(1)
textbox.pack()
button1=tk.Button(root, text='output', command=count_print, font = myFont,
height=button_height,
width=button_width,
bg = button_bg,
fg = button_fg)
button1.pack()
root.mainloop()
【问题讨论】:
-
在使用
tkinter时不应使用time.sleep。最好使用tkinter循环。例如看here -
如果您在此站点上搜索
[tkinter] sleep,您会发现超过 1000 个问题和答案。您是否尝试过查看现有问题? -
为什么我应该避免在 tkinter 中使用 time.sleep?我没有遇到任何问题。
标签: python loops tkinter while-loop textbox