파이썬(Python)

[ Tkinter ] 파이썬(Python) Tkinter 달력에서 날짜 선택하기 : 달력 표시하기 Tkcalendar

카루루1007 2024. 10. 7. 13:17
728x90
반응형

tkcalendar 라이브러리tkinter GUI 라이브러리에서 달력 위젯을 제공하는 라이브러리

날짜 선택을 쉽게 할 수 있도록 도와줍니다.

 

tkcalendar 라이브러리를 사용하면

복잡한 달력의 구현 없이 사용자가 날짜를 선택하거나 표시할 수 있습니다.

 

 설치하기

 

아래와 같이 설치가 가능합니다.

pip install tkcalendar

 

728x90

 달력 출력하기

 

아래 그림과 같이 달력을 출력하고

버튼을 누르면 해당 날짜를 출력하는 간단한 코드입니다.

 

전체 코드입니다.

import tkinter as tk
from tkcalendar import Calendar

def print_sel():
    print(cal.selection_get())

root = tk.Tk()

cal = Calendar(root)
cal.pack(padx = 20, pady=20)

button = tk.Button(root, text="선택 날짜 출력", command=print_sel)
button.pack(pady=20)

root.mainloop()

 

 

tkcalendar 라이브러리에서 Calendar 클래스를 불러옵니다.

이 클래스는 Tkinter에 달력 기능을 추가하는 역할을 합니다.

from tkcalendar import Calendar

 

Calendar 객체를 생성하고 달력 위젯을 나타냅니다.

cal = Calendar(root)
cal.pack(padx = 20, pady=20)

 

selection_get() 함수를 통해 달력에서 선택된 날짜를 가져와

터미널에 출력을 합니다.

def print_sel():
    print(cal.selection_get())

 

반응형

 달력 설정 옵션

 

이 블로그를 작성하는 날짜는 2024-10-07로 

별다른 설정이 없으면 

위 그림과 같이 달력의 최초 날짜는 오늘 날짜가 됩니다.

 

만약 기본값으로 특정 날짜를 정하고 싶다면

아래와 같이 코드를 작성하면 됩니다.

cal = Calendar(root, year=2022, month=10, day=1)
cal.pack(padx = 20, pady=20)

설정값
year=2022, month=10, day=1

 

이 코드를 실행하면 2022년 10월 1일이 기본날짜로 선택이 됩니다.

 

위 달력을 보시면 요일의 시작이 월요일로 되어 있습니다.

요일의 시작을 바꾸려면 아래와 같이 코드를 작성하면 됩니다.

cal = Calendar(root, firstweekday="sunday")
cal.pack(padx = 20, pady=20)

설정값
firstweekday="sunday"

 

firstweekday를 sunday로 설정하면 요일의 시작이 일요일로 바뀝니다.

 

맨 앞을 보면 몇 주차인지 표시가 되어 있습니다.

주차를 표시하지 않으려면 아래와 같이 코드를 작성하면 됩니다.

cal = Calendar(root, firstweekday="sunday", showweeknumbers=False)
cal.pack(padx = 20, pady=20)

설정값
showweeknumbers=False

 

이 코드를 실행하면 아래 그림과 같이 

주차가 표시되지 않습니다.

 

한국어로 표시도 가능합니다.

cal = Calendar(root, firstweekday="sunday", locale='ko_KR')
cal.pack(padx = 20, pady=20)

설정값
locale='ko_KR'

 

이 코드를 실행하면 아래 그림과 같이 달력이 한국어로 바뀝니다.

 

토요일과 일요일을 빨간색으로 표시하려면

다음과 같이 코드를 작성하면 됩니다.

cal = Calendar(root, firstweekday="sunday", locale='ko_KR', weekendforeground='red')
cal.pack(padx = 20, pady=20)

설정값
weekendforeground='red'

 

위 코드의 실행결과는 다음과 같습니다.

 

만약 달력에서 날짜를 선택하지 못하게 하려면

아래와 같이 코드를 작성하면 됩니다.

cal = Calendar(root, firstweekday="sunday", locale='ko_KR', selectmode="none")
cal.pack(padx = 20, pady=20)

설정값
selectmode="none"

 

이 코드를 실행하면 달력에서 날짜 선택이 불가능하게 됩니다.

여기를 방문하시면 더 많은 파이썬 관련 자료를 확인할 수 있습니다.

파이썬 공부하기

 

728x90
반응형