【Python】Tkinter pack オブジェクトを配置する

PythonのTkinterでオブジェクトを配置するには3つの方法(pack・grid・place)があります。

  1. pack
  2. grid
  3. place

今回は、PythonのTkinterのpackでオブジェクトを配置する方法を解説します。

Tkinterでオブジェクトを配置する pack

Tkinterで作成したボタンやラベルを配置する方法の1つに「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の使い方でした。

コメント