import tkinter as tk
import time
root=tk.Tk()
root.title("how to do ")
root.geometry('500x600')
tk.Label(root, text="显示", bg="green", font=("Arial", 12), width=5, height=1).place(x=20,y=30)
def print():
EditText.insert('1.0',A())
def A():
for i in range(100):
time.sleep(1) #间隔1秒输出
if i < 3:
yield ("编号{},字符串A".format(i))
if 3<i and i<5:
yield ("编号{},字符串B".format(i))
if i >5:
yield ("编号{},字符串C".format(i))
break
return
EditText = tk.Text(root,width=30,height=10) #创建文本框
EditText.grid(row=2,column=3)
btn_test=tk.Button(root, text="按钮", command =print,width=5, height=2)
btn_test.place( x=300,y=200)
root.mainloop()
这样子运行的结果:在text上出现:Generator Object A at 0x000002898B746CF0
如果把函数的字符串取出来:
str=A()
result=list(str)
这样子虽然可以输出,但是时间间隔没了、原格式也变了
期望输出结果是这样的:
但是如果像图片那样输出,代码可以改成:
def A():
for i in range(100):
if i < 3:
yield ("编号{},字符串A".format(i))
if 3<i and i<5:
yield ("编号{},字符串B".format(i))
if i >5:
yield ("编号{},字符串C".format(i))
break
return
for i in A():
print(i)
但这样子在tkinter上insert不了
请问各位大佬,有没有什么办法解决。