NationalInstrumentsのボードを使用してデータを取得するプロジェクトに取り組んでいます。タスクを実行するための機能的なCコードがありますが、Pythonを使用したいので、GUIプログラミングはそれほど苦痛ではありません。私のCコードでは、定期的にWM_TIMERイベントを発生させるAPI呼び出しsetTimerを使用しています。Tkループにも同様のメカニズムがありますか?次のコードを使ってみました。
def DAQ(self):
if self.do_DAQ:
result = self.myDAQ.getData()
currTime = time.time() - self.start_time
self.time_label.config(text="{:.1f} seconds".format(currTime))
self.volt_label.config(text="{:.4f} volts".format(result))
self.time_data[self.i] = currTime
self.volt_data[self.i] = result
self.i += 1
self.after(1962, self.DAQ)
after()の魔法「1962」は試行錯誤で約2秒の遅延が発生すると判断されましたが、キュー内の他の内容に応じてタイムスライスがドリフトします。タイムスライスをより正確にするためにこれを行う方法はありますか?具体的には、キュー内の他のものよりも先にTkにDAQイベントを実行させることはできますか?