CodeGym /행동 /Python SELF KO /사용자와 상호작용하기 위한 Tkinter 기본 창 만들기

사용자와 상호작용하기 위한 Tkinter 기본 창 만들기

Python SELF KO
레벨 49 , 레슨 1
사용 가능

1. 애플리케이션의 메인 창 만들기

오늘은 Tkinter 라이브러리를 이용해 그래픽 인터페이스의 세계로 흥미진진한 여행을 떠나보자. 이 강의가 끝난 후, 너의 PC는 그냥 철제 상자가 아니라 계산뿐만 아니라 결과를 사용자에게 화면에 보여줄 줄 아는 진정한 마법사가 될 거야. 자, 안전벨트를 매고 첫 번째 기본 애플리케이션 창을 만들어보자!

우리 애플리케이션의 기본 창을 만드는 것부터 시작하자. Tkinter에서는 굉장히 간단하게 이걸 할 수 있어. Tk() 함수를 사용해서 메인 창의 인스턴스를 만들어보자 — GUI의 세계에서 "Hello, World!" 같은 느낌이지.


import tkinter as tk

# 애플리케이션 인스턴스 생성
root = tk.Tk()

# 창 제목 설정
root.title("내 첫 애플리케이션")

# 메인 루프 실행
root.mainloop()
    

여기서 무슨 일이 일어나고 있을까?

  1. Tkinter 임포트: 먼저 tkinter 라이브러리를 임포트하자. 편의를 위해 우리는 이걸 tk로 줄여서 임포트해. (우리 프로그래머들은 줄이는 걸 정말 좋아하거든.)
  2. 창 생성: 우리는 root 객체를 생성했는데, 이건 애플리케이션의 메인 창을 의미해. 이 창은 애플리케이션의 "심장"이라고 생각하면 돼, 이게 없으면 애플리케이션은 그냥 멈춰버려.
  3. 창 제목: title() 메서드를 사용해서 창 제목을 설정했어, 사용자들이 뭘 다루고 있는지 알 수 있도록 말이야. 여기서는 그냥 "내 첫 애플리케이션"이라고 이름을 붙였어.
  4. 메인 루프 (mainloop()): 이건 우리 애플리케이션에서 이벤트 처리를 시작하는 중요한 요소야. 이 루프가 실행되는 동안 창이 화면에 남아있고 사용자와 상호작용을 기다리고 있어.

단계별 가이드

  1. 메인 창 생성: 모든 인터페이스는 메인 창을 만드는 것에서 시작돼.

    
    root = tk.Tk()
    root.title("기본 창")
                

    우와! 이제 너의 삶에 창이 생겼어. 커튼 준비됐지?

  2. 창 속성 설정: 창에 약간의 개인화를 추가해보자.

    
    root.geometry("800x600")  # 너비 x 높이
    root.iconbitmap('icon.ico')  # 아이콘 파일을 지정할 수 있어
                
  3. 애플리케이션 메인 루프: 창이 나타나자마자 바로 사라지는 걸 방지하기 위해, 메인 루프를 실행하자.

    
    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()
    

설명

  1. 레이블 (Label): Label()을 사용해서 "안녕, 사용자! 내 첫 GUI에 오신 걸 환영합니다."라는 텍스트가 있는 레이블을 만들었어. 끝부분에 pack() 메서드를 사용해서 화면에 간단히 위젯을 배치했어.

  2. 버튼 (Button): 버튼은 "나 눌러봐!" 텍스트로 만들어졌어. 우리는 또한 command 파라미터를 전달했는데 이게 버튼이 눌렸을 때 어떤 함수를 호출할지 지정해줘. 여기서 커맨드는 lambda: print("버튼이 눌렸어!")를 호출해서 클릭하면 콘솔에 메시지가 나타나게 돼.

이렇게 해서 우리는 기본 창을 만들 뿐만 아니라, 창을 인터랙티브하게 만들었어! 이젠 그냥 창이 아니라 작은 "애플리케이션"이라고 할 수 있어. 이건 시작일 뿐이야 — 앞으로 더 흥미진진한 일이 기다리고 있어!

Tkinter의 세계로 들어가는 이 입문 여행을 즐겼기를 바라. 기억해, GUI는 너의 프로그래밍 실력을 시각적으로 세상에 보여줄 수 있는 기회야. 다음 강의에서는 버튼과 입력 필드를 추가하는 방법을 다룰 거니까, 더 인터랙티브한 인터페이스를 준비해!

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION