
Tkinter란 무엇인가?
GUI(Graphical User Interface)는 우리가 마우스로 클릭하거나 버튼을 누르는 방식의 사용자 인터페이스를 말합니다. 일반적인 파이썬 프로그램은 터미널에서 작동하지만, 사용자에게 친숙한 환경을 제공하려면 GUI를 갖춘 앱을 만들어야 합니다. 파이썬에서 GUI를 만들기 위한 라이브러리 중 가장 많이 사용되는 것이 바로 Tkinter입니다. Tkinter는 파이썬 표준 라이브러리에 포함되어 있어서 별도 설치 없이 바로 사용할 수 있으며, 간단한 문법으로 창(Window), 버튼(Button), 텍스트(Text), 입력창(Entry) 등을 만들 수 있어 초보자에게 매우 적합합니다. Tkinter로 만들 수 있는 대표적인 예시는 다음과 같습니다.
- 메모장
- 계산기
- 폴더 정리 도구
- 파일 변환기
- 설문 폼
Tkinter 기본 구성과 위젯 사용법
1. 기본 창 띄우기
import tkinter as tk
root = tk.Tk()
root.title("나의 첫 GUI")
root.geometry("300x200")
root.mainloop()
이 코드를 실행하면 간단한 윈도우 창이 열립니다. mainloop()
는 이벤트 루프를 시작하여 사용자가 창을 닫을 때까지 GUI를 유지시킵니다.
2. 버튼, 라벨, 입력창 만들기
import tkinter as tk
def say_hello():
label.config(text=f"안녕하세요, {entry.get()}님!")
root = tk.Tk()
root.title("인사 앱")
root.geometry("300x150")
entry = tk.Entry(root)
entry.pack()
button = tk.Button(root, text="인사하기", command=say_hello)
button.pack()
label = tk.Label(root, text="이름을 입력해주세요.")
label.pack()
root.mainloop()
위 코드는 Entry(입력창), Button(버튼), Label(텍스트 출력)을 조합하여 사용자 입력에 따라 반응하는 간단한 GUI를 구성합니다.
나만의 간단한 계산기 앱 만들기
import tkinter as tk
def calculate():
try:
num1 = float(entry1.get())
num2 = float(entry2.get())
operator = operator_var.get()
if operator == "+":
result = num1 + num2
elif operator == "-":
result = num1 - num2
elif operator == "*":
result = num1 * num2
elif operator == "/":
result = num1 / num2
else:
result = "지원되지 않음"
result_label.config(text=f"결과: {result}")
except ValueError:
result_label.config(text="숫자를 입력해주세요.")
except ZeroDivisionError:
result_label.config(text="0으로 나눌 수 없습니다.")
root = tk.Tk()
root.title("간단 계산기")
root.geometry("300x250")
tk.Label(root, text="숫자 1").pack()
entry1 = tk.Entry(root)
entry1.pack()
tk.Label(root, text="연산자 (+, -, *, /)").pack()
operator_var = tk.StringVar()
entry_op = tk.Entry(root, textvariable=operator_var)
entry_op.pack()
tk.Label(root, text="숫자 2").pack()
entry2 = tk.Entry(root)
entry2.pack()
tk.Button(root, text="계산하기", command=calculate).pack(pady=10)
result_label = tk.Label(root, text="결과: ")
result_label.pack()
root.mainloop()
이 계산기 프로그램은 사용자로부터 숫자 2개와 연산자를 입력받아 결과를 계산하고, 오류 처리를 통해 예외 상황에도 안정적으로 작동합니다.그 외 Tkinter를 더 활용해볼 수 있는 프로젝트는 아래와 같은 내용이 있습니다.
- 할 일 목록 앱: 입력한 작업을 리스트에 추가하고 삭제할 수 있는 간단한 메모 앱
- 타이머 앱: 일정 시간 후 알림을 띄우는 타이머 프로그램
- 이미지 뷰어: 폴더 내 이미지를 하나씩 넘겨가며 확인하는 앱
- 파일 자동 정리 도구: 특정 폴더 내 파일을 조건별로 자동 이동
이러한 실습은 Tkinter 위젯에 대한 이해도를 높이고, 실제 사용할 수 있는 간단한 프로그램을 만드는 연습이 됩니다.