탭(Tab)은 다목적 GUI 애플리케이션에서 매우 유용한 요소입니다. 여러 작업이나 프로세스를 탭 형태로 분리하여 관리할 수 있기 때문에, 한 번에 여러 기능을 처리해야 하는 애플리케이션 개발에 특히 적합합니다.
Tkinter에서는 Notebook 위젯을 사용하여 애플리케이션에 탭을 손쉽게 만들 수 있습니다. 다만 탭의 속성이나 스타일을 설정하려면 일반 Tkinter 위젯이 아닌 ttk 테마 위젯을 사용해야 합니다. ttk 테마 위젯은 애플리케이션 내 모든 위젯의 외관을 통일감 있게 꾸밀 수 있도록 도와줍니다.
탭 배경색 변경 방법
탭의 배경색을 변경하려면 ttk 'default' 테마를 적용한 뒤, 스타일 구성 시 'TNotebook.Tab'을 스타일 파라미터로 지정하면 됩니다. 이를 통해 선택된 탭과 일반 탭의 색상을 자유롭게 커스터마이징할 수 있습니다.
예제 코드
# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import ttk
# tkinter 프레임 인스턴스 생성
win = Tk()
# tkinter 윈도우 크기 설정
win.geometry("700x350")
# ttk 스타일 인스턴스 생성
s = ttk.Style()
s.theme_use('default')
s.configure('TNotebook.Tab', background="green3")
s.map("TNotebook", background= [("selected", "green3")])
# Notebook 위젯 생성
nb = ttk.Notebook(win)
# 새 탭에 추가할 프레임 생성
f1 = ttk.Frame(nb, width= 400, height=180)
# 탭 이름 추가
nb.add(f1, text= 'Tkinter-1')
f2 = ttk.Frame(nb, width= 400, height=180)
nb.add(f2, text= "Tkinter-2")
nb.pack(expand= True, fill=BOTH, padx= 5, pady=5)
win.mainloop()실행 결과
위 코드를 실행하면 윈도우에 커스터마이징된 탭이 표시됩니다. 코드의 s.configure() 부분에서 원하는 색상 이름(예: "green3")을 다른 색상으로 바꾸면 탭 헤더의 배경색을 자유롭게 수정할 수 있습니다. 또한 s.map() 메서드를 활용하면 탭이 선택되었을 때의 색상까지 별도로 지정할 수 있어, 더욱 세련된 UI를 구현할 수 있습니다.