Toplevelウィジェットを使って子画面を表示しよう
今回はToplevelウィジェットを使って子画面を表示してみましょう。
Toplevelウィジェットの書式
Toplevelウィジェットの使い方は、以下の通りです。
※ tkinterを別名でインポートした場合は、tkinterの部分を別名にしてください。
オブジェクト名 = tkinter.Toplevel(master=親ウィジェット, オプション)
第1引数はToplevelウィジェットの親ウィジェットを指定します。
また、masterは省略することができます。
Toplevelウィジェットで使うオプション
Toplevelで使う主なオプションは、以下の通りです。
オプション名 | 内容 |
fg/foreground | 子画面の色 *1 |
bd/borderwidth | 3D境界線の幅。デフォルトは0(境界線なし) |
relief | フレームの形状。flat、raised、sunken、groove、ridgeを指定。デフォルトはflat *2 |
padx | 水平方向のパディング |
pady | 垂直方向のパディング |
*1 色の指定にはred、green、blueなどのカラー名や先頭に#(シャープ)を付けた16進数が使えます。
*2 フレームの形状は、以下の画像のようになります。
Toplevelウィジェットを使ったプログラム
Toplevelのオプションを指定したプログラムは、以下のようになります。
親画面にボタンを配置して、commandオプションに子画面を作成する関数を設定しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
### インポート import tkinter ### 子画面表示関数 def fanc(): ### 子画面作成 sub = tkinter.Toplevel(master=None, bg="lime", bd=20, relief="ridge") ### 子画面サイズ設定 sub.geometry("320x200") ### ボタン作成 button_sub = tkinter.Button(master=sub, text="閉じる", font=(None,24), command=sub.destroy) ### ボタン配置 button_sub.pack(pady=20) ### メイン画面作成 main = tkinter.Tk() ### 画面サイズ設定 main.geometry("640x400") ### ボタン作成 button = tkinter.Button(master=main, text="子画面表示", font=(None,24), command=fanc) ### ボタン配置 button.pack(pady=20) ### イベントループ main.mainloop() |
親画面の「子画面表示」ボタンを押下すると、子画面が表示されます。
なお、親画面を閉じると一緒に子画面も終了します。