Pythonのtkinter packの使い方について。
この記事の内容はコチラです
- Pythonでオブジェクトを配置したい
- packの使い方を知る
- tkinterの使い方を知る
今回は、Pythonのtkinterのpackでオブジェクトを配置する方法を解説します。
tkinterでオブジェクトを配置する pack
Pythonのtkinterでオブジェクトを配置するには3つの方法(pack・grid・place)があります。
- pack
- grid
- place
3つの方法のうち、比較的スタンダードな「pack」について紹介します。tkinterのpackにはオプションが多数あり、配置場所を細かく指定することができます。
packのオプション
| fill | x | 横拡大 |
| y | 縦拡大 | |
| both | 縦横拡大 | |
| none | 何もしない | |
| padx | 外側の横の余白 | |
| pady | 外側の縦の余白 | |
| ipadx | 内側の横の余白 | |
| ipady | 内側の縦の余白 | |
| side | left | 左詰め |
| right | 右詰め | |
| top | 上詰め | |
| bottom | 下詰め | |
| expand | 0 | レスポンシブなし |
| 1 | レスポンシブあり | |
| anchor | 空きスペースがある場合の配置場所 |
このオプションを使ってボタンなどのオブジェクトを画面に配置します。
pack でボタンを上・中央に配置する
import tkinter
# 画面作成
root = tkinter.Tk()
root.geometry('300x200')
# ボタン作成
btn = tkinter.Button(root, text='終了')
# 配置
btn.pack()
root.mainloop()

ここでは「tkinter」の「pack」で画面上部に配置しました。
「pack」のオプションパラメータを指定せず「pack()」とすると画面最上部の中央に配置されます。
pack でボタンを横いっぱいに広げて配置(fill)
import tkinter
# 画面作成
root = tkinter.Tk()
root.geometry('300x200')
# ボタン作成
btn = tkinter.Button(root, text='終了')
# 配置
btn.pack(fill = 'x')
root.mainloop()

ここでは「tkinter」の「pack」で画面上部に横幅いっぱいに広げて配置しました。
「pack」のオプションパラメータ「fill = ‘x’」は横幅を最大に広げて配置されます。
pack でボタンを横いっぱいに広げて余白を作る(padx)
import tkinter
# 画面作成
root = tkinter.Tk()
root.geometry('300x200')
# ボタン作成
btn = tkinter.Button(root, text='終了')
# 配置
btn.pack(fill = 'x', padx=30)
root.mainloop()

ここでは「tkinter」の「pack」で余白を残して横幅を広げて画面上部に配置しました。
「pack」のオプションパラメータ「padx」は横幅に余白を作ります。
pack でボタンを横に並べて配置する(side)
import tkinter
# 画面作成
root = tkinter.Tk()
root.geometry('300x200')
# ボタン作成
btn = tkinter.Button(root, text='開始', width=14)
# 配置
btn.pack(fill = 'x', padx=20, side = 'left')
# ボタン作成
btn = tkinter.Button(root, text='終了', width=14)
# 配置
btn.pack(fill = 'x', padx=20, side = 'left')
root.mainloop()

ここでは「tkinter」の「pack」でボタンを横に並べて配置しました。
「pack」のオプションパラメータ「side = ‘left’」で左詰めすると横並びで配置されます。
pack でボタンを縦に並べて配置する(side)
import tkinter
# 画面作成
root = tkinter.Tk()
root.geometry('300x200')
# ボタン作成
btn = tkinter.Button(root, text='開始', width=14)
# 配置
btn.pack(fill = 'x', padx=20, side = 'top')
# ボタン作成
btn = tkinter.Button(root, text='終了', width=14)
# 配置
btn.pack(fill = 'x', padx=20, side = 'top')
root.mainloop()

ここでは「tkinter」の「pack」でボタンを並べて配置しました。
「pack」のオプションパラメータ「side = ‘top’」で上詰めすると縦並びで配置されます。
参考ページ:https://docs.python.jp/3/library/tk.html
以上、Python tkinterでオブジェクトを配置するpackの使い方でした。


コメント
sideで、topをしながら、右左に分ける方法はありますか?
(side=topとrightかleft両立)