일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 웹 프로그래밍
- MariaDB
- OpenCV
- Django
- 그래픽 유저 인터페이스
- POD
- FLASK
- 데이터베이스
- pytorch
- 장고
- 논문 리뷰
- k8s
- yaml
- Web Programming
- 딥러닝
- Deep Learning
- kubernetes
- Tkinter
- paper review
- 파이썬
- GUI
- vue.js
- numpy
- Computer Vision
- 파이토치
- 텐서플로우
- tensorflow
- 컴퓨터 비전
- Python
- Docker
- Today
- Total
Maxima's Lab
[Python, Tkinter] Graphic User Interface (GUI) - Place (위젯 배치) 본문
[Python, Tkinter] Graphic User Interface (GUI) - Place (위젯 배치)
Minima 2022. 8. 11. 23:28안녕하세요, 오늘은 Tkinter 모듈을 사용하여, GUI 중 Place를 활용해서 위젯을 배치하는 방법에 대해서 알아보겠습니다.
Place를 활용하기 위해 필요한 항목들은 다음과 같습니다.
- x : width 축 방향으로의 절대 위치 (Ex) 0, 10, 100, 200, ...
- y : height 축 방향으로의 절대 위치
- width : 배치될 위젯의 width 축 방향으로의 절대 길이
- height : 배치될 위젯의 height 축 방향으로의 절대 길이
- relx : width 축 방향으로의 상대적 위치 (Ex) 0, 0.1, 0.2, ..., 1 (0이상 1이하의 값을 가짐)
- rely : height 축 방향으로의 상대적 위치
- relwidth : 배치될 위젯의 width 축 방향으로의 상대 길이 (0이상 1이하의 값을 가짐)
- relheight : 배치될 위젯의 height 축 방향으로의 상대 길이
위의 항목들 중 relx, rely, rewidth, relheight를 활용하여 구현해보겠습니다.
다음은, 전체 코드를 실행 시의 초기 화면입니다.
위의 코드를 실행하기 위한 전체 코드는 다음과 같습니다.
from tkinter import *
win = Tk()
win.title("Maxima")
win.geometry("800x600+200+200")
win.resizable(True, True)
button_1 = Button(win, text="Button 1")
button_2 = Button(win, text="Button 2")
button_3 = Button(win, text="Button 3")
button_1.place(relx=0.0, rely=0.2, relwidth=0.5, relheight=0.1)
button_2.place(relx=0.0, rely=0.4, relwidth=1.0, relheight=0.1)
button_3.place(relx=0.5, rely=0.5, relwidth=0.5, relheight=0.5)
win.mainloop()
초기 화면 내 윈도우 창의 위치는 좌표 (x, y) = (200, 200)를 기준으로 width 축 방향으로 800, height 축 방향으로 600의 사이즈로 생성되며, win.resizable(True, True)를 통해 윈도우 창의 사이즈를 조절할 수 있습니다.
Button Widgets은 총 3개로 구성되어 있고, 각각의 버튼의 위치와 크기를 (relx, rely) & relwidth x relheight)로 표현하였습니다.
button_1.place(relx=0.0, rely=0.2, relwidth=0.5, relheight=0.1)
Button 1의 경우에는 초기 윈도우 창 사이즈인 800 x 600 기준, 좌표 (800*0.0, 600*0.2)=(0, 120)에서 생성되며
크기는 (800*0.5) x (600x0.1) = 400 x 60 로 형성됩니다.
Button 2와 Button 3도 유사하게 적용되어 각 위젯별 위치와 사이즈로 생성되는 것을 확인하실 수 있습니다.
위의 예시와 같이, relx, rely, relwidth, relheight를 이용하여 위젯을 배치하는 경우에는 다음과 같은 이점이 있습니다.
상대 위치와 상대 길이를 사용해서 위젯을 배치 하기 때문에 위의 이미지 결과 처럼, 사이즈가 조절이 된 윈도우 창 내에서도 동일한 비율이 유지되는 것을 확인할 수 있습니다.
지금까지, Tkinter 모듈을 사용하여, Graphic User Interface (GUI)의 Place를 활용해서 위젯을 배치하는 방법에 대해서 알아보았습니다.