Python:函数输出结束了吗?

时间:2014-07-07 21:20:16

标签: python tkinter

我正在制作用于收集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语句之前)添加睡眠。

1 个答案:

答案 0 :(得分:0)

@Joran Beasley我在if语句之前添加了一个self.update_idletasks(),它就像一个魅力。