2016-12-16 714 views
1

我想在使用tkinter的GUI时异步地调用一个函数。我试图运行一个打印命令,该命令将异步运行到GUI,而不会冻结并每0.5秒重复一次。我不明白如何从我看过的教程中做到这一点,并希望得到一些帮助。这里以浓缩代码为例来说明我遇到的问题。我也使用python 2.7以防万一。python 2.7与tkinter的异步函数

import Tkinter as tk 

class TestClass(tk.Tk): 
    def __init__(self, *args, **kwargs): 
     tk.Tk.__init__(self, *args, **kwargs) 
     self.create_view() 

    def create_view(self): 
     self.labelTitle = tk.Label(self, text="Live Camera Page",) 
     self.labelTitle.pack() 

    def asynchronous_function(self): 
     print("I would like this to repeat every 0.5 seconds ...") 

app = TestClass() 
app.geometry("800x600") 
app.mainloop() 
+0

看看Tkinter的''后''方法。 – jasonharper

+0

您是否尝试过创建单独的线程? –

+0

我已经尝试创建一个单独的线程,但我无法得到它在tkinter内工作。这是我真正遇到的问题。 – ConorYoungs

回答

1

如果你只想运行函数需要几百毫秒以下运行,你可以使用的Tkinter的after方法。如果花费比这更长的时间,则必须将此异步函数放入另一个线程或另一个进程中。

+0

我打算每隔0.5秒用simplecv拍摄一张照片,并将其放到tkinter GUI的画布上。 – ConorYoungs

+1

我会尝试使用After方法,看看它是否足够快,使用并从那里去。我有一个答案后,我有工作更新帖子。 – ConorYoungs