2016-11-23 145 views
1

我使用Tkinter,Python创建了一个可用的GUI界面。加载GUI需要一两分钟,我的问题如下:Python GUI加载时显示图像

当python在GUI上执行加载时,是否显示图像?

真的很感谢帮助。

+0

你可能会产生一个新的TopLevel,它有一个图像。我不得不想知道为什么你的GUI需要这么长时间才能加载。 – scotty3785

+0

@ scotty3785,它需要大约10秒钟来显示GUI,但是,当我使用pyinstaller打包GUI并将其用于另一台机器“我正在使用Windows”时,它没有安装python,它需要一个小型文件左右显示它,任何想法? – aBiologist

+0

在开始加载真实用户界面之前,只需显示另一个更简单的用户界面(只有图像)? –

回答

2

正如评论中所建议的,您可以使用TopLevel来显示另一个窗口。 您可以使用<NameOfYourTopLevel>.overrideredirect(1)隐藏窗框。

您可能还会考虑在GUI完成加载后使用.after_idle(<callback>)关闭窗口。

这是更完整的例子。我一直无法复制图形用户界面的大延迟,所以模拟了这个self.after(5000,self.splash.destroy)。你应该能够self.after_idle(self.splash.destroy)

try: 
    import tkinter as tk 
except: 
    import Tkinter as tk 


class App(tk.Frame): 
    def __init__(self,master=None,**kw): 
     self.splash = Splash(root) 
     tk.Frame.__init__(self,master=master,**kw) 
     tk.Label(self,text="MainFrame").grid() 
     self.after(5000,self.splash.destroy) 

class Splash(tk.Toplevel): 
    def __init__(self,master=None,**kw): 
     tk.Toplevel.__init__(self,master=master,**kw) 
     tk.Label(self,text="Show Image here").grid() 
     self.overrideredirect(1) 

if __name__ == '__main__': 
    root = tk.Tk() 

    App(root).grid() 
    root.mainloop() 

This question来代替,这将告诉你如何中心窗口在屏幕上。

+0

什么样的说法是? – aBiologist

+0

它是一个函数的句柄/名称。 – scotty3785

+0

我没有在我的代码上测试这个,因为我远离计算机,但非常感谢帮助,会告诉我它的结果如何。投票给你我的朋友! – aBiologist