2016-11-23 13 views
1

Tkinter、Pythonを使用して実際のGUIインターフェイスを作成しました。 GUIを読み込むには1〜2分かかりますが、私の質問は以下の通りです:Python GUIが読み込まれている間に画像を表示

GUI上でPythonが負荷をかけている間にイメージが表示されますか?

本当に助けていただきありがとうございます。

+0

画像がある新しいTopLevelを生成する可能性があります。私はなぜあなたのGUIを読み込むのに時間がかかるのだろうかと思う。 – scotty3785

+0

@ scotty3785、GUIの表示には約10秒かかりますが、Pyinstallerを使ってGUIをパッケージ化し、別のマシンで使用すると「PythonをインストールしていないWindowsを使用しています」というメッセージが表示されますそれを表示するには、任意のアイデア? – aBiologist

+0

実際のUIを読み込む前に別の簡単なUI(画像のみ)を表示するだけですか? –

答えて

2

コメントに示唆されているように、TopLevelを使用して別のウィンドウを表示することができます。 <NameOfYourTopLevel>.overrideredirect(1)を使用してウィンドウフレームを非表示にすることができます。

GUIのロードが完了したら、.after_idle(<callback>)を使用してウィンドウを閉じることも考えられます。

もっと完全な例です。私はGUIの描画に大きな遅れを再現することができなかったので、これを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

関連する問題