Tkinter는 파이썬에서 GUI(Graphical User Interface) 프로그래밍을 할 때 사용하는 모듈입니다. 사용자가 그래픽을 통해 컴퓨터와 상호작용을 할 수 있도록 도와줄 뿐 아니라 창, 버튼, 콤보 박스 등... 직관적이기 때문에 사용자가 코드 이해 없이도 프로그램을 쉽게 사용할 수 있도록 도와줍니다.
Tkinter
Tkinter는 Tcl/Tk에 대한 파이썬 Wrapper로서 Tcl/Tk를 파이썬에 사용할 수 있도록 한 Lightweight GUI 모듈입니다.
- Tcl은 Tool Command Language의 약자로서 일종의 프로그래밍 언어
- Tk는 크로스 플랫폼에 사용되는 일종의 GUI 툴킷
Tkinter는 타 GUI 프레임워크나 툴킷에 비해 지원되는 위젯들이 부족하고 UI도 그렇게 예쁘지 않다는 단점이 있지만, Python 설치 시 기본적으로 내장되어 있는 파이썬 표준 라이브러리이기 때문에 쉽고 간단한 GUI 프로그램을 만들 때 활용될 수 있습니다.
Tkinter 사용
import tkinter
import tkinter을 통해 모듈을 호출합니다.
tkinter.함수명 형태로 함수를 사용하기 때문에 'as tk'를 통해 별칭으로 정의하는 것을 권장합니다.
import tkinter as tk
root = tk.Tk() # 생성 구문
# 위젯 생성
root.mainloop() # 반복 구문
윈도우명 = tk.Tk()를 이용하여 가장 상위 레벨(Base) 윈도우(Root Window) 창을 생성할 수 있습니다.
윈도우명.mainloop()를 사용하여 윈도우이름의 윈도우 창을 윈도우가 종료될 때까지 실행시킵니다.
생성/반복 구문 사이 위젯을 생성합니다.
( Root ) Window 창 설정 ( Option )
import tkinter as tk
root = tk.Tk()
root.title("PY-LIFE")
root.geometry("640 x 400 + 100 + 100")
root.resizable(False, False)
root.mainloop()
윈도우명.title('제목')으로 윈도우 창의 제목을 설정할 수 있습니다.
윈도우명.geometry('너비 x 높이 + x 좌표 + y 좌표')를 이용하여 윈도우 창의 너비와 높이, 초기 화면 위치의 x 좌표와 y 좌표를 설정할 수 있습니다.
윈도우명.resizeable(상하, 좌우)을 이용하여 윈도우 창의 창 크기 조절 가능 여부를 설정할 수 있습니다. True로 설정할 경우 윈도우 창의 크기를 조절할 수 있습니다.
- Tip : resizeable()을 적용할 때, True = 1, False = 0을 의미하여 상수를 입력해도 적용이 가능합니다.
윈도우 창의 이름이 PY-LIFE로 설정되었으며 크기와 초기 화면 위치, 윈도우 창의 크기 조절 불가로 설정된 것을 확인할 수 있습니다.
Widget 배치
import tkinter as tk
root = tk.Tk()
root.title("PY-LIFE")
root.geometry("640x400+100+100")
root.resizable(False, False)
label=tk.Label(root, text="안녕하세요.")
label.pack()
root.mainloop()
위젯명 = tkinter.Label(윈도우창, text="내용")을 사용하여 윈도우 창에 Label 위젯을 설정할 수 있습니다.
위젯명.pack()을 사용하여 위젯을 배치할 수 있습니다.
속성을 설정하지 않아 기본 속성으로 설정되어 가장 최상단에 라벨이 배치된 것을 확인할 수 있습니다.
마무리
Tkinter에서 가장 기본이 되는 Window 창을 생성하는 방법에 대해서 소개드렸습니다.
다음 Chapter부터는 Widget에 대해 소개드리도록 하겠습니다.
'PYTHON > tkinter' 카테고리의 다른 글
(Python Tkinter) Chapter 6. Button ( 버튼 ) (0) | 2022.09.13 |
---|---|
(Python Tkinter) Chapter 5. Label ( 레이블 ) (0) | 2022.09.08 |
(Python Tkinter) Chapter 4. place - Geometry(Layout) Managers (0) | 2022.07.28 |
(Python Tkinter) Chapter 3. grid - Geometry(Layout) Managers (0) | 2022.07.28 |
(Python Tkinter) Chapter 2. pack - Geometry(Layout) Managers (0) | 2022.07.21 |