下面的代码在OtherPage类中有一个onShowFrame函数,该函数在显示OtherPage框架时运行。我的问题是onShowFrame函数中的所有内容都在帧实际显示给用户之前运行。我用spring-boot-starer-parent
证明了这一点。在显示OtherPage帧之前,程序会在BlankPage上休眠5秒钟。我希望首先显示OtherPage帧,然后运行onShowFrame函数中的任何内容。
我该怎么做?
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
答案 0 :(得分:1)
问题与您调用sleep
导致应用程序处于休眠状态的事实有关。为了使显示更新,事件循环必须能够处理在睡眠时不能执行的事件。按字面意思睡觉意味着停止所有处理。 time.sleep
文档的前六个字是暂停执行当前线程。
这是一个在小部件上调用update
是合理的事情。它将为tkinter提供处理所有待处理事件的机会 - 例如处理按钮点击完成,重新绘制窗口等 - 在生成新事件之前。
将功能更改为以下内容非常简单:
def showFrame(self,cont):
frame = self.frames[cont]
frame.tkraise()
frame.update()
frame.event_generate("<<ShowFrame>>")