【PythonでGUIアプリ開発】tkinterのウィジェットの配置方法を解説

Tkinter

tkinterでウィジェットを作成した後、配置しなければなりませんが、その方法は一つではありません。

今回はウィジェットの配置方法について解説したいと思います。

スポンサーリンク

pack

実装コード

import tkinter as tk

main_win = tk.Tk()
main_win.title("テスト用ウィンドウ")
main_win.geometry("400x300")

text1 = tk.Label(main_win, text="テスト1", bg='yellow')
text2 = tk.Label(main_win, text="テスト2", bg='pink')
text1.pack()
text2.pack(fill="x")

main_win.mainloop()

実行結果

解説

packはウィジェットを一次元的に配置する場合によく使用されます。

packのオプション

packのオプションで使用頻度が高いものを抜粋してみました。

fillx横方向に拡大する
y縦方向に拡大する
both横・縦両方に拡大する
sideleft左詰めにする
right右詰めにする
top上詰めにする
bottom下詰めにする
padx外側の横の隙間を指定する
pady外側の縦の隙間を指定する
ipadx内側の横の隙間を指定する
ipady内側の縦の隙間を指定する

スポンサーリンク

grid

実装コード

import tkinter as tk

main_win = tk.Tk()
main_win.title("テスト用ウィンドウ")
main_win.geometry("400x300")

text1 = tk.Label(main_win, text="テスト1", bg='yellow')
text2 = tk.Label(main_win, text="テスト2", bg='pink')
text3 = tk.Label(main_win, text="テスト3", bg='blue')
text4 = tk.Label(main_win, text="テスト4", bg='green')
text1.grid(column=0, row=0)
text2.grid(column=0, row=1)
text3.grid(column=1, row=0)
text4.grid(column=1, row=1)

main_win.mainloop()

実行結果

解説

ウィジェットを2次元的に配置する時によく使用されるのがgridです。

左上を原点(0,0)として、列をcolumnで行をrowで指定して配置します。

コメント

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