Tkinter のボタンをクリックして新しいウィンドウを作成する方法
胡金庫
2021年3月24日
Tkinter
Tkinter Toplevel
Tkinter Button

このチュートリアルでは、Tkinter のボタンをクリックして、新しい Tkinter ウィンドウを作成して開く方法を示します。
新しい Tkinter ウィンドウを作成する
import tkinter as tk
def createNewWindow():
newWindow = tk.Toplevel(app)
app = tk.Tk()
buttonExample = tk.Button(app, text="Create new window", command=createNewWindow)
buttonExample.pack()
app.mainloop()
通常、tk.Tk()
を使用して新しい Tkinter ウィンドウを作成しますが、上記のコードに示すように root
ウィンドウを既に作成している場合は無効です。
この状況で、Toplevel
は要求機能を正確に実現するためのウィジェットです。Toplevel
ウィジェットは追加のポップアップ
ウィンドウを表示します。ことを目的としているためです。
buttonExample = tk.Button(app, text="Create new window", command=createNewWindow)
createNewWindow
関数をボタンにバインドします。
上記の例では新しいウィンドウは空のウィンドウであり、通常の root
ウィンドウにウィジェットを追加するのと同じようにウィジェットを追加できますが、親ウィジェットを作成された Toplevel
ウィンドウに変更する必要があります。
import tkinter as tk
def createNewWindow():
newWindow = tk.Toplevel(app)
labelExample = tk.Label(newWindow, text="New Window")
buttonExample = tk.Button(newWindow, text="New Window button")
labelExample.pack()
buttonExample.pack()
app = tk.Tk()
buttonExample = tk.Button(app, text="Create new window", command=createNewWindow)
buttonExample.pack()
app.mainloop()
ご覧のように、labelExample
と buttonExample
の親ウィジェットは newWindow
であり、app
ではありません。
チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
著者: 胡金庫