繁体   English   中英

Python:函数输出到底是什么?

[英]Python: function ouputs at the end?

我正在制作一个用于收集镜检数据的GUI,但是获取按钮没有按我期望的那样运行。 tools.Acquire()tools.MakeData()是耗时的函数,受镜面通信速度的限制,因此我想打印一个状态来告诉用户实际正在发生的事情。

相反,似乎正在执行这两个功能,然后在事实之后打印“正在获取...”和“已获取”。 谁能弄清楚是什么原因引起的问题?

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语句之前)。

@Joran Beasley我在if语句之前添加了self.update_idletasks(),它的工作原理很吸引人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM