Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Tkinter로 스플래시 화면(Splash Screen) 만드는 방법

애플리케이션이 실행될 때 잠깐 나타났다가 사라지는 스플래시 화면(Splash Screen)은 프로그램의 첫인상을 결정하는 중요한 요소입니다. Python의 GUI 라이브러리인 Tkinter를 사용하면 몇 단계만으로 간단하게 스플래시 화면을 구현할 수 있습니다.

스플래시 화면 구현 순서

  • 라벨(Label) 등의 위젯이 포함된 스플래시 화면 창을 생성합니다.
  • overrideredirect 메서드를 사용해 스플래시 화면의 테두리(타이틀 바)를 제거합니다.
  • 스플래시 화면 이후에 나타날 메인 윈도우를 생성하는 함수를 정의합니다.
  • after 메서드를 사용하여 스플래시 화면이 유지될 시간과 메인 윈도우가 나타나는 시점을 지정합니다.

예제 코드

# tkinter 라이브러리 임포트
from tkinter import *

# tkinter 프레임 인스턴스 생성
splash_win = Tk()

# 윈도우 제목 설정
splash_win.title("Splash Screen Example")

# 윈도우(프레임) 크기 지정
splash_win.geometry("700x200")

# 스플래시 윈도우의 테두리 제거
splash_win.overrideredirect(True)

# 스플래시 윈도우에 라벨 추가
splash_label = Label(splash_win, text="Hello World!", fg="green",
                     font=('Times New Roman', 40)).pack(pady=20)

def mainWin():
    # 스플래시 윈도우 종료 후 메인 윈도우 생성
    splash_win.destroy()
    win = Tk()
    win.title("Main Window")
    win.geometry("700x200")
    win_label = Label(win, text="Main Window", font=('Helvetica', 25),
                      fg="red").pack(pady=20)

# 스플래시 윈도우 타이머 설정 (5000ms = 5초 후 mainWin 실행)
splash_win.after(5000, mainWin)

mainloop()

실행 결과

위 코드를 실행하면 먼저 테두리 없는 초록색 "Hello World!" 텍스트가 담긴 스플래시 화면이 나타납니다. 그리고 약 5초가 지난 후 스플래시 화면이 자동으로 종료되고, 빨간색 "Main Window" 텍스트가 있는 메인 윈도우로 전환됩니다.

핵심 포인트 정리

  • overrideredirect(True): 윈도우의 제목 표시줄과 테두리를 제거하여 깔끔한 스플래시 화면을 만듭니다.
  • after(ms, 함수): 지정한 밀리초 이후에 특정 함수를 실행하며, 스플래시 화면의 표시 시간을 조절하는 데 사용됩니다.
  • destroy(): 기존 스플래시 윈도우를 완전히 종료한 뒤 새로운 메인 윈도우를 열어 리소스 낭비를 방지합니다.

이 방식을 응용하면 로고 이미지나 로딩 진행 상태를 스플래시 화면에 추가하여 더욱 전문적인 애플리케이션 시작 경험을 제공할 수 있습니다.