蟒蛇,不睡觉的倒数计时器



我是新的python,我正试图使一个按钮点击倒计时计时器。但我想这个倒计时计时器开始倒计时,并将当前的倒计时值在文本区域。此外,我需要应用程序的其余部分不睡觉,而这个倒计时正在运行。到目前为止,它将在控制台中输出倒计时,但将冻结应用程序的其余部分。有人能给我指个正确的方向吗?

from Tkinter import *
import time
import threading
import thread
class App:

    def __init__(self, master):
        frame = Frame(master)
        frame.pack()
        self.getvalue = Button(frame, text="Get the Text Area", command=self.thevalue)
        self.getvalue.pack(side=LEFT)
        self.text_area = Entry()
        self.text_area.pack(side=RIGHT)

    def thevalue(self):
        print "In the value"
        try:
            t = threading.Thread(target=self.print_time("I am in print_time"))
            t.daemon = True
            t.start()
        except:
            print "Error: unable to start thread"
    def print_time(self,bleh):
        print bleh
        print "The text area value is %s" % self.text_area.get()
        boom=5
        while boom >0:
            time.sleep(1)
            self.text_area.delete(0, END)
            self.text_area.insert(0, boom)
            print(boom)
            boom -=1
root = Tk()
app = App(root)
root.mainloop()
threading.Thread(target=self.print_time("I am in print_time"))

这不会做你想要它做的事。这里发生的事情是调用函数self.print_time,然后将其返回值传递给threading.Thread的构造函数。

你需要像这样创建线程:

t = threading.Thread(target=self.print_time, args=("I am in print_time",))

最新更新