「Python3」Tkinter Ver.8.6(Toplevelでサブウィンドウを作成)

Tkinter Python

Toplevelとは?

Toplevelは、サブウィンドウなど、新しいウィンドウを作成する場合に利用します。
サブウィンドウはいくつでも作成することができます。

Toplevel 説明02

また、サブウィンドウを削除してもトップレベルウィンドウは削除されません。

Toplevel 説明03

しかし、トップレベルウィンドウを削除するとサブウィンドウは全て削除されます。

Toplevel 説明04

Toplevelの実装

<ソースコード>
from tkinter import *
from tkinter import ttk

import pprint

def sub_window():
    #サブウィンドウ生成
    sub_win = Toplevel(
        background = "white",
        borderwidth = 10,
        relief = "sunken",
        padx = 10,
        pady = 10,
        highlightbackground = "pink",
        highlightcolor = "red",
        highlightthickness = 5,
    )
    #サブウィンドウの画面サイズ
    sub_win.geometry("300x200")

    pprint.pprint(sub_win.config())
    
    #Button生成
    button = ttk.Button(
        sub_win,
        text = 'サブウィンドウ閉じる',
        width = str('サブウィンドウ閉じる'),
        padding = (30, 0),
        command = sub_win.destroy
        )
    button.grid()

#メインウィンドウ生成
root = Tk()
#ウィンドウのタイトル
root.title('Application')
# ウィンドウの大きさを決定
root.geometry("300x200")
#Frame生成
frame = ttk.Frame(root)
#Button生成
button = ttk.Button(
    frame,
    text = 'SUB_WINDOW', #表示する文字
    width = str('SUB_WINDOW'), #横幅
    padding = (30, 0), #隙間
    command = sub_window #押されたら実行する関数
    )

#ウィンドウ内にFrameを表示
frame.grid()
#Frame内にButtonを表示
button.grid()

#ウィンドウ表示
root.mainloop()
<出力結果>

Toplevel 説明01
トップレベルウィンドウの”SUB_WINDOW”ボタンを押すと、サブウィンドウが作成されます。

Toplevelのオプションを表にまとめます。

オプション 説明
background 背景色
borderwidth 境界線の太さ
relief 形状(flat, groove, raised, ridge, solid, sunken)
padx 左右のパディング
pady 上下のパディング
highlightbackground ウィジェットに入力フォーカスがないときにhighlight領域に表示する色を指定
highlightcolor ウィジェットに入力フォーカスがあるときにhighlight領域に表示する色を指定
highlightthickness highlight領域の太さを整数で指定

コメント

タイトルとURLをコピーしました