【发布时间】:2017-10-16 06:45:59
【问题描述】:
我在 python 中的两个脚本之间传递变量而不结束导入的脚本时遇到问题。我希望我的 tkinter GUI 中的状态栏更新以反映 script2 中的计数器的编号。我已包含以下代码:
from tkinter import *
import script2
root = Tk()
canvas = Canvas(root, width=300, height=300)
canvas.pack()
def runScript():
var = script2.information()
button1 = Button(root, text="Click Me!", command=runScript)
button1.pack()
var = StringVar()
var.set('Waiting for Input...')
status = Label(root, textvariable=var, bd=1, relief=SUNKEN, anchor=W)
status.pack(side=BOTTOM, fill=X)
root.mainloop()
script2.py 将是:
#script2
import time
def information():
variable = 0
while variable < 500:
yield variable
variable += 1
print(variable)
time.sleep(1)
我知道这与生成器有关,但我的理解是yield 会暂停循环,将数据发送到原始程序,让它处理它,然后取消暂停循环。有没有更好的方法来理解这个过程?
【问题讨论】:
标签: python tkinter scripting statusbar yield