Python
파이썬 GUI - 배치 , pack/grid/place
샐님
2024. 5. 10. 11:08
728x90
반응형
컴포넌트 배치
1.pack : (짐을) 싸다. 2.grid : 격자무늬 3.place : (어떤 장소에) 놓다
pack 과 grid 는 함께 못쓴다.
1. Pack
from tkinter import *
win = Tk()
win.geometry("400x200")
win.title("pack")
win.option_add("*Font", "맑은고딕 20")
btn = Button(win)
btn.config(text="버튼")
btn.pack(pady=10) # 위치, pady 는 위아래로 패딩이 생김
btn2 = Button(win)
btn2.config(text="버튼2")
btn2.pack()
win.mainloop()
2. Grid
from tkinter import *
win = Tk()
win.geometry("400x200")
win.title("grid")
win.option_add("*Font", "맑은고딕 20")
# 4 x 3 버튼 array 만들기
btn_list =[]
col_num = 4
row_num = 3
for j in range(0,row_num):
for i in range(0, col_num):
btn = Button(win)
btn.config(text="({},{})".format(i,j))
btn.grid(column=i, row=j, padx=10, pady=10)
btn_list.append(btn)
btn = Button(win)
btn.config(text="new")
btn.grid(column=2, row=4, rowspan=4) # 위치를 지정해줘야한다. 그렇지 않으면 겹칠수 있음.
win.mainloop()
3.Place
from tkinter import *
win = Tk()
win.geometry("400x200")
win.title("place")
win.option_add("*Font", "맑은고딕 20")
xx = 30
yy = 50
# 절대 좌표
btn = Button(win)
btn.config(text="절대좌표")
btn.place(x=100,y=100)
# 상대 좌표 : 창의 크기를 1로 간주
btn2 = Button(win)
btn2.config(text="상대좌표")
btn2.place(relx=0.1, rely=0.1)
win.mainloop()
728x90
반응형