如何在setInterval中引发帧

时间:2017-04-11 10:47:28

标签: python multithreading tkinter setinterval

from Tkinter import *
from threading import Thread
from time import sleep

def call_at_interval(period, callback, args):
    while True:
        sleep(period)
        try:
            callback(*args)
        except:
            exit(0)

def setInterval(period, callback, *args):
    Thread(target=call_at_interval, args=(period, callback, args)).start()
def go():
    print("count")
    setInterval(3,count,5)

def count(val):
    i[0] = i[0] + 1
    print(i)
    if(i[0]%val == val-1):
        f2.tkraise()
    elif(i[0]%val==0):
        f1.tkraise()



i = []
i.append(1)
root = Tk()
f1 = Frame(root)
f2 = Frame(root)

for frame in (f1,f2):
    frame.grid(row=0, column=0, sticky='news')

f1.tkraise()
b = Button(f1,text="changeframe",command=go)
b.pack()
root.mainloop()

我想要的只是在特定条件下从某个特定时间间隔运行的函数中提出一个帧。上面的一个例子。上面的例子中有一个问题,当i[0]的值到达时setInterval停止val-1,应用程序给出“无响应错误”。请帮我解决这个问题。

0 个答案:

没有答案