Python Code Notes

Information by python engineer

【tkinter】ウィジェットを配置する方法①: packメソッド【Python】

f:id:vigilantPotato:20210725002549p:plain
ウィジェットを一方向に配置するときに使用するpackメソッドの使用方法を整理する。


【スポンサーリンク】


縦方向に積み重ね表示

ウィジェットに対してpackメソッドを実行すると、ウィジェットが積み重ねて表示される。デフォルトでは縦方向に上から順番にウィジェットが表示されていく。

import tkinter

root = tkinter.Tk()

#Button5個をPackで表示
for i in range(5):
    b_top = tkinter.Button(
        root,
        text="pack: " + str(i+1),
        bg="lightblue",
        )
    b_top.pack()    #packで積み重ね表示

root.mainloop()
f:id:vigilantPotato:20210725002155p:plain

packメソッドのsideオプションをbottomに設定することで、下から順番に積み上げ表示させることができる。(デフォルトではtop)

import tkinter

root = tkinter.Tk()

#Button5個をPackで表示(下から)
for i in range(5):
    b_top = tkinter.Button(
        root,
        text="pack: " + str(i+1),
        bg="lightblue",
        )
    b_top.pack(side="bottom")    #packで積み重ね表示

root.mainloop()
f:id:vigilantPotato:20210725002311p:plain

[↑ 目次へ]


【スポンサーリンク】


横方向に積み重ね表示

sideオプションをleftまたはrightにすることで、横方向に積み重ね表示することができる。以下、右から横方向に積み重ね表示する例を示す。

import tkinter

root = tkinter.Tk()

#Button5個をPackで表示(右から)
for i in range(5):
    b_top = tkinter.Button(
        root,
        text="pack: " + str(i+1),
        bg="lightblue",
        )
    b_top.pack(side="right")    #packで積み重ね表示

root.mainloop()
f:id:vigilantPotato:20210725002441p:plain

[↑ 目次へ]


【スポンサーリンク】


表示領域の設定

fillオプションを用いて、ウィジェットを表示する領域を設定することができる。

import tkinter

root = tkinter.Tk()

#Button5個をPackで表示
for i in range(5):
    b_top = tkinter.Button(
        root,
        text="pack: " + str(i+1),
        bg="lightblue",
        )
    b_top.pack(fill="x")    #packで積み重ね表示

root.mainloop()

fillオプションをxにすることで、ウィジェットを横方向全域に表示させることができる。また、yに設定すると縦方向全域表示となる。

f:id:vigilantPotato:20210725002549p:plain

[↑ 目次へ]


余白の設定

padxオプションで、ウィジェット間の余白を設定することができる。

import tkinter

root = tkinter.Tk()

#Button5個をPackで表示
for i in range(5):
    b_top = tkinter.Button(
        root,
        text="pack: " + str(i+1),
        bg="lightblue",
        )
    b_top.pack(pady=5)    #packで積み重ね表示

root.mainloop()
f:id:vigilantPotato:20210725002739p:plain

[↑ 目次へ]


オプション

オプション 動作
fill 占有領域の設定 x, y, both, None(デフォルト)
side 積み上げ方向の設定 top(デフォルト), bottom, left, right
padx, pady ウィジェット外側の隙間の設定
ipadx, ipady ウィジェット内側の隙間の余白

[↑ 目次へ]


【スポンサーリンク】