コマンドの送信にシリアルポートを使用するPythonでGUIを作成しています。私の古いスクリプトでは、GUI を使用せずに、書き込みコマンドの間に time.sleep(x) を使用しました (to コマンドが成功するためには必要です)。gui envrimont を使用する場合、sleep を使用できないため、after を使用します。
それはうまくいきますが、GUIにTkinterを使用しています。ボタン start を押すと、 OnButtonClickSTART はx時間後に他の機能を開始します。self.after を使用すると、すべてのプロセス間で x 秒待機します。動作しますが、関数で値を指定すると、指定された時間待機しません。
def OnButtonClickSTART(self):
print "START"
self.button1.configure(state='disabled')
self.after(1000, self.waitmore)
def waitmore(self):
value = 5
print value
self.after(10000,self.waitmuchmore(value))
def waitmuchmore(self,value):
print value
self.after(10000,self.OnButtonClickSTOP)
def OnButtonClickSTOP(self):
print "STOP"
self.button1.configure(state='normal')
そして、一連のコマンドを実行するためのより良い方法ではありませんか, それらの間に一定の時間. sleep に似ていますが、1 つの関数で動作し、GUI を無効にしません。
どうも