from tkinter import *
##from sys import exit
class Timer:
def __init__(self, master):
self.master=master
buttonstart = Button(master, text = "Start", fg = "blue", command = self.start)
buttonstart.grid(row = 1, column = 0)
buttonquit = Button(master, text = "Quit", fg = "blue", command=self.quitit)
buttonquit.grid(row = 1, column = 2)
self.timertext = DoubleVar()
self.timertext.set(0)
display = Label(master, textvariable = self.timertext)
display.grid(row = 0, column = 0)
self.timeit=False
def increment_timer(self):
if self.timeit:
ctr=int(self.timertext.get())
self.timertext.set(ctr+1)
self.master.after(3000, self.input_delay)
self.master.after(4000, self.output_delay)
if self.timeit:
self.master.after(5000, self.increment_timer)
def input_delay(self):
print("Input Delay")
def output_delay(self):
print("Output Delay")
def start(self):
self.timeit=True
self.increment_timer()
def quitit(self):
self.timeit=False
root = Tk()
app = Timer(root)
root.mainloop()
在increment_timer()方法中,5000的延迟可以正常工作,但3000和4000的延迟根本不起作用。如果我把5000的延迟改为0,那么它只会继续给出input\u delay方法的结果。我想在每次迭代中调用3秒延迟后的输入延迟和4秒延迟后的输出延迟。将5000改为0是很好的,因为我不希望出现延迟,而是希望在每个迭代中延迟两次。请引导我做这个。。你知道吗
目标是重复以下顺序:
self.input_delay
self.output_delay
代码中的问题是
因此,您同时将
self.input_delay
的执行安排在3s中,将self.output_delay
的执行安排在4s中。因此,最终这两个执行将只被1s分开。要纠正这一点,您需要将self.input_delay
中的self.output_delay
的执行安排在self.input_delay
执行后4s执行。你知道吗以下是代码的相关部分:
相关问题 更多 >
编程相关推荐