为什么在睡眠指令之前的行没有被执行?

2024-10-06 12:36:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了一个窗口类,我正在与一些按钮。 我有一个问题,首先它执行一个休眠行,它是在我的代码结束,而不是执行之前的行

程序花了1秒才设置按钮和标签的文本,但函数sleep()在这些行之后

def BntStart(self):
    btnText = "Detener"
    self.btn.setText(btnText)
    self.label.setText("Gracias por presionarme")
    #If I add this line the 3 lines above aren't executed
    time.sleep(1)

有人知道为什么会这样


Tags: 函数代码文本self程序defsleep标签
1条回答
网友
1楼 · 发布于 2024-10-06 12:36:26

除非指定使用多个线程,否则程序将在单个线程上运行。可能在线程的其他地方有一个调用,您要求程序更新图形。但是,一旦程序被告知睡眠,线程执行将不会继续,直到睡眠完成,所以图形将不会更新,直到睡眠完成

解决这个问题的一个方法是使用multiple threadMVC (Model View Controller)范式,其中视图和控制器在不同的线程上运行。这允许程序继续处理它想要如何控制图形,同时也呈现它们

编辑

因为这是一个tkinter问题,这个other stackoverflow question几乎是相同的

相关问题 更多 >