私はPythonを学び、PythonでGUIを試してみて、このTkinterモジュールに出会いました。コードは実行されますが、実行時にウィンドウが表示されません。私のコードは次のとおりです。
from Tkinter import *
#to create a root window
root = Tk()
プログラムは実行され、エラーは発生しませんが、ウィンドウは表示されません。
これをコードroot.mainloop()
に追加してください。ここにチュートリアルがあります。
あなたのコメントに応えて
#Also note that `from <module> import *` is generally frowned upon
#since it can lead to namespace collisions. It's much better to only
#explicitly import the things you need.
from Tkinter import Tk, Label
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()
他の回答が指摘しているようmainloop
に、ルート オブジェクトを呼び出す必要があります。
オブジェクト指向スタイルのプログラミングをお勧めします。また、グローバル インポートを行わないこともお勧めします (つまり、 'from Tkinter import *' ではありません) 。
以下は、私が通常最初に使用するテンプレートです。
import Tkinter as tk
class ExampleView(tk.Frame):
def __init__(self, root):
tk.Frame.__init__(self, root)
l = tk.Label(self, text="your widgets go here...", anchor="c")
l.pack(side="top", fill="both", expand=True)
if __name__=='__main__':
root = tk.Tk()
view = ExampleView(root)
view.pack(side="top", fill="both", expand=True)
root.mainloop()
これにより、メインロジックをファイルの先頭に保持し、ルートの作成と呼び出しをmainloop
一緒に保持することが容易になります。これにより、コードが少し理解しやすくなると思います。また、このコードの再利用が少し簡単になります (つまり、これが作成可能ないくつかのウィンドウの 1 つである、より大きなプログラムを作成できます)。
最後に追加root.mainloop()
します。