怎样使图形图像界面文本框Text内容按一定时间后刷新内容
1445from tkinter import*from tkinter.ttk import*
import time
ck=Tk()
ck.title("测试")
ck.geometry("500x300")
e=Text(ck)
e.pack()
a=5
c=[]
b=
for i in c:
c.append(i)
def q():
time.sleep(3)
e.delete(0.0,END)
for i in b:
e.insert(END,i)
e.insert(END,'\n')
while a>0:
b.pop()
q()
time.sleep(3)
a=a-1
print(b)
ck.mainloop()85
我想让文本框隔3秒后输出新的b列表。使用print函数能隔3秒后输出新的b列表,但是文本框界面是在print函数输出后才出现,而且文本框只有最后的b列表。请问该怎么改代码才能达到想要的效果? tkinter是单线程的要实现这个估计有些 难度 使用tk的after方法 直接给条鱼你吧,{:10_333:}
from tkinter import *
win = Tk()
def update(ls):
print(ls)
txt.delete("1.0", END)
txt.insert(END, ','.join(map(str, ls))+'\n')
cancel_id = txt.after(1000, update, ls)
if len(ls)>5:
ls.pop()
else:
txt.after_cancel(cancel_id)
txt = Text(win)
txt.insert(END, "Hello\n")
txt.pack()
ls = list(range(9))
win.after(1000, update, ls)
win.mainloop() 我之前玩过,使用threading创建线程,要在主事件循环之前,
from threading import Thread
...
def add():
...
t = Thread(target = add)
t.start()
...
mainloop() hrpzcf 发表于 2021-6-16 16:30
使用tk的after方法
from tkinter import*
from tkinter.ttk import*
import time
ck=Tk()
ck.title("测试")
ck.geometry("500x300")
e=Text(ck)
e.pack()
b=
def q():
e.delete(0.0,END)
for i in b:
e.insert(END,str(i)+'\n')
if b!=[]:
b.pop()
ck.after(3000,q)
ck.after(3000,q)
ck.mainloop()
我改成这样后可以了
谢谢!!!{:5_108:}{:5_110:} 阿奇_o 发表于 2021-6-16 17:58
直接给条鱼你吧,
谢谢!!!这个也可以{:5_95:}
页:
[1]