我正在制作用于收集oscope数据的GUI,而获取按钮并没有按照我的预期运行。 tools.Acquire()
和tools.MakeData()
是时间密集型的功能,受到oscope通信速度的限制,所以我想打印一个状态告诉用户实际发生了什么。
相反,看起来这两个功能正在执行,然后“收购......”'和'获得'事后印刷。任何人都可以解释可能导致问题的原因吗?
def Acquire_Click(self, event):
self.statusbox.insert(0.0, 'Acquiring.... ')
if self.status == 1:
#Acquire the data
tools.Acquire()
tools.MakeData()
#Make plot
self.ax.plot(tools.freq, tools.data)
plt.title('Waveform: ' + tools.plotname)
plt.ylabel('dB')
plt.xlabel('Frequency (Hz)')
self.canvas.show()
self.canvas.get_tk_widget().grid(sticky=Tk.N, pady=20)
self.canvas._tkcanvas.grid(row=0, column=0, pady=20)
#Return/update status
self.statusbox.insert(0.0, 'Acquired ')
self.status = 0
print self.status
else:
self.statusbox.insert(0.0, 'Please Reset ')
return 1
我已经尝试在第一次状态更新后(在if语句之前)添加睡眠。
答案 0 :(得分:0)
@Joran Beasley我在if语句之前添加了一个self.update_idletasks(),它就像一个魅力。