1. 애플리케이션의 메인 창 만들기
오늘은 Tkinter 라이브러리를 이용해 그래픽 인터페이스의 세계로 흥미진진한 여행을 떠나보자. 이 강의가 끝난 후, 너의 PC는 그냥 철제 상자가 아니라 계산뿐만 아니라 결과를 사용자에게 화면에 보여줄 줄 아는 진정한 마법사가 될 거야. 자, 안전벨트를 매고 첫 번째 기본 애플리케이션 창을 만들어보자!
우리 애플리케이션의 기본 창을 만드는 것부터 시작하자. Tkinter에서는 굉장히 간단하게 이걸 할 수 있어. Tk()
함수를 사용해서 메인 창의 인스턴스를 만들어보자 — GUI의 세계에서 "Hello, World!" 같은 느낌이지.
import tkinter as tk
# 애플리케이션 인스턴스 생성
root = tk.Tk()
# 창 제목 설정
root.title("내 첫 애플리케이션")
# 메인 루프 실행
root.mainloop()
여기서 무슨 일이 일어나고 있을까?
- Tkinter 임포트: 먼저
tkinter
라이브러리를 임포트하자. 편의를 위해 우리는 이걸tk
로 줄여서 임포트해. (우리 프로그래머들은 줄이는 걸 정말 좋아하거든.) - 창 생성: 우리는
root
객체를 생성했는데, 이건 애플리케이션의 메인 창을 의미해. 이 창은 애플리케이션의 "심장"이라고 생각하면 돼, 이게 없으면 애플리케이션은 그냥 멈춰버려. - 창 제목:
title()
메서드를 사용해서 창 제목을 설정했어, 사용자들이 뭘 다루고 있는지 알 수 있도록 말이야. 여기서는 그냥 "내 첫 애플리케이션"이라고 이름을 붙였어. - 메인 루프 (
mainloop()
): 이건 우리 애플리케이션에서 이벤트 처리를 시작하는 중요한 요소야. 이 루프가 실행되는 동안 창이 화면에 남아있고 사용자와 상호작용을 기다리고 있어.
단계별 가이드
-
메인 창 생성: 모든 인터페이스는 메인 창을 만드는 것에서 시작돼.
root = tk.Tk() root.title("기본 창")
우와! 이제 너의 삶에 창이 생겼어. 커튼 준비됐지?
-
창 속성 설정: 창에 약간의 개인화를 추가해보자.
root.geometry("800x600") # 너비 x 높이 root.iconbitmap('icon.ico') # 아이콘 파일을 지정할 수 있어
-
애플리케이션 메인 루프: 창이 나타나자마자 바로 사라지는 걸 방지하기 위해, 메인 루프를 실행하자.
root.mainloop()
애플리케이션 메인 루프
이제 우리가 창을 가지게 되었으니, 메인 루프 mainloop()
에 대해 얘기해보자. 이 루프는 너의 파티에서 보이지 않는 DJ와 같아 — DJ가 음악을 돌리는 동안 모든 것이 계획대로 진행돼.
메인 루프는 항상 주의깊게 애플리케이션이 작동하고 사용자의 행동(마우스 클릭이나 키보드 입력 같은)에 반응하도록 해줘.
이 루프가 없다면 너의 애플리케이션은 그냥 빈 창을 보여주고 종료될 거야. 그러니까 너의 모든 Tkinter 스크립트 끝에 반드시 추가하도록 기억하자!
2. 위젯과의 첫 만남
Tkinter는 각기 고유한 기능을 수행하는 많은 위젯들을 제공해. 몇 가지를 알아보자.
Tkinter 주요 위젯
- 창 (Window): 모든 다른 위젯들이 있는 메인 표면.
- 버튼 (Button): 클릭에 반응하는 상호작용 요소.
- 입력 필드 (Entry): 텍스트 한 줄을 입력할 수 있는 필드.
- 레이블 (Label): 텍스트나 이미지를 표시하는 데 사용돼.
- 텍스트 필드 (Text): 여러 줄의 텍스트를 입력하고 표시할 수 있어.
위젯 사용 예
위젯을 사용해서 버튼과 레이블이 있는 간단한 창을 만드는 방법을 보여주는 짧은 예제야:
import tkinter as tk
def say_hello():
label.config(text="안녕, 세상!")
root = tk.Tk()
root.title("내 첫 애플리케이션")
label = tk.Label(root, text="버튼을 눌러봐")
label.pack(pady=10)
button = tk.Button(root, text="나 눌러봐", command=say_hello)
button.pack(pady=5)
root.mainloop()
이 코드를 실행하면, 레이블과 버튼이 있는 창을 볼 수 있어. 버튼을 누르면 레이블이 세상에 인사를 건넨다!
3. 창에 위젯 추가하기
이제 우리가 멋진 창을 가졌으니 (그래, 지금은 우리가 자랑할 수 있는 건 이것뿐이야), 몇 가지 위젯을 추가해보자. 위젯은 버튼, 레이블, 입력 필드 같은 사용자 인터페이스 요소야. 간단한 것부터 시작하자: 버튼과 레이블을 만들어보자.
# tkinter 라이브러리를 임포트
import tkinter as tk
# 애플리케이션의 메인 창 생성
root = tk.Tk()
root.title("내 첫 애플리케이션")
# 레이블 생성 및 창에 배치
label = tk.Label(root, text="안녕, 사용자! 내 첫 GUI에 오신 걸 환영합니다.")
label.pack() # pack 메서드를 사용해서 위젯을 배치
# 버튼 생성 및 창에 배치
button = tk.Button(root, text="나 눌러봐!", command=lambda: print("버튼이 눌렸어!"))
button.pack()
# 메인 루프 실행
root.mainloop()
설명
-
레이블 (Label):
Label()
을 사용해서 "안녕, 사용자! 내 첫 GUI에 오신 걸 환영합니다."라는 텍스트가 있는 레이블을 만들었어. 끝부분에pack()
메서드를 사용해서 화면에 간단히 위젯을 배치했어. -
버튼 (Button): 버튼은 "나 눌러봐!" 텍스트로 만들어졌어. 우리는 또한
command
파라미터를 전달했는데 이게 버튼이 눌렸을 때 어떤 함수를 호출할지 지정해줘. 여기서 커맨드는lambda: print("버튼이 눌렸어!")
를 호출해서 클릭하면 콘솔에 메시지가 나타나게 돼.
이렇게 해서 우리는 기본 창을 만들 뿐만 아니라, 창을 인터랙티브하게 만들었어! 이젠 그냥 창이 아니라 작은 "애플리케이션"이라고 할 수 있어. 이건 시작일 뿐이야 — 앞으로 더 흥미진진한 일이 기다리고 있어!
Tkinter의 세계로 들어가는 이 입문 여행을 즐겼기를 바라. 기억해, GUI는 너의 프로그래밍 실력을 시각적으로 세상에 보여줄 수 있는 기회야. 다음 강의에서는 버튼과 입력 필드를 추가하는 방법을 다룰 거니까, 더 인터랙티브한 인터페이스를 준비해!
GO TO FULL VERSION