2016-12-16 21 views
1

GUIのためにtkinterを使用している間に関数を非同期に呼び出そうとしています。私はそれをフリーズせず0.5秒ごとにそれを繰り返すことなくGUIに非同期に実行する印刷コマンドを実行しようとしています。私は見てきたチュートリアルからこれをどうやってやっていくのか分からず、助けを求めています。ここに凝縮されたコードは私が持っている問題を説明するための例です。私はまた、違いがある場合には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の '' after''メソッドを見てください。 – jasonharper

+0

別のスレッドを作成しようとしましたか? –

+0

私は別のスレッドを作成しようとしましたが、tkinter内で動作させることができませんでした。それは私が本当に持っている問題です。 – ConorYoungs

答えて

1

実行したい機能のみを使用すると、Tkinterののafterメソッドを使用することができ、実行するために数百ミリ秒以下を取る場合。それよりも時間がかかる場合は、この非同期関数を別のスレッドまたは別のプロセスに配置する必要があります。

+0

私はsimplecvで0.5秒ごとに画像を撮り、それをtkinter GUI上のキャンバスに置くことを計画しています。 – ConorYoungs

+1

私はafterメソッドを使用して、それが使用するのに十分速く、そこから行くかどうかを試します。いったん私がそれを働かせたら、私は答えを投稿に更新します。 – ConorYoungs