Python回调中函数执行的顺序

问题描述

我下面构造了一个GUI作为对象。当用户单击图中的任意位置时,将执行回调。 (稍后,我将这样做,以便仅在用户单击特定区域时才执行回调。)我想更新显示内容,说“请稍候...” 之前 ,这需要几秒钟才能执行。下面,我只放入sleep(2)来模拟这一点。

运行下面的代码时,即使首先调用了文本更新,我也会调用sleep(2),在显示文本“ Please wait ...”之前执行回调的plt.draw()。之后,请确保先绘制。为什么在执行sleep(2)之后什么也没画?

import matplotlib.pyplot as plt
from time import sleep

class TimeDemo():
    
    def __init__(self):
        self.fig,self.ax = plt.subplots()
        self.ax.axis("off")
        self.axtext = self.ax.annotate("Please click somewhere.",xy=(0,0.5),ha="left",va="center")
        self.donecid = self.fig.canvas.mpl_connect("button_press_event",self.donecallback)    
    def sleeper(self):
        sleep(2)
        plt.draw()
    
    def donecallback(self,event):
        self.fig.canvas.mpl_disconnect(self.donecid)
        self.axtext.remove()
        self.axtext = self.ax.annotate("Please wait...",va="center")
        plt.draw()
        self.sleeper()

mydemo = TimeDemo()

plt.show()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...