일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 운영체제목적
- 정처기운영체제
- 파이썬배열
- 파이썬
- 백준
- 파이썬리스트
- 안드로이드
- 파이썬배열예제
- 파이썬예제
- 스누핑
- It
- 운영체제종류
- 코딩공부
- androidstudio
- 자바예제
- int크기
- 정처산기
- 코딩
- 프로그래밍
- 데이터베이스
- java
- 업다운게임코드
- 안드로이드스튜디오
- ai
- bottomnavigation
- 정처기
- 바텀네비게이션
- 정보처리산업기사
- 자바
- 컴퓨터일반
- Today
- Total
발전을 위한 기록
[Python] 파이썬으로 달력 만들기4 - <메모 검색> 본문
이전 포스팅에서 만든 달력에 메모 검색 기능을 추가한 코드입니다!
❗ 모듈 설치가 필요합니다 ❗
Tkinter용 달력 위젯을 제공하는 별도의 모듈입니다.
pip install tkcalendar
전체 코드
import tkinter as tk
from tkcalendar import Calendar
from tkinter import messagebox
def on_date_select(event):
# 선택된 날짜를 가져옵니다.
selected_date = cal.selection_get()
# 해당 날짜에 대한 메모를 텍스트 입력 필드에 표시합니다.
memo_entry.delete(1.0, tk.END)
memo_entry.insert(tk.END, memos.get(selected_date, ""))
def save_memo():
# 메모 저장
selected_date = cal.selection_get()
memos[selected_date] = memo_entry.get(1.0, tk.END).strip()
print(f"날짜: {selected_date}, 메모: {memos[selected_date]}")
def search_memo():
search_query = search_entry.get()
if not search_query:
messagebox.showinfo("검색", "검색어를 입력해주세요.")
return
matching_memos = []
for date, memo in memos.items():
if search_query.lower() in memo.lower():
matching_memos.append(f"{date}: {memo}")
if matching_memos:
result_message = "\n\n".join(matching_memos)
messagebox.showinfo("검색 결과", f"일치하는 메모를 찾았습니다.:\n\n{result_message}")
else:
messagebox.showinfo("검색 결과", "일치하는 메모가 없습니다.")
root = tk.Tk()
root.title("한국어 달력")
# 메모를 저장할 딕셔너리
memos = {}
# 사용자 정의 폰트 설정
custom_font = ('Arial', 12, 'bold')
# 캘린더 위젯 생성 및 스타일 설정
cal = Calendar(root, selectmode='day', font=custom_font,
background='white', foreground='black', bordercolor='gray',
headersbackground='#6096B4', headersforeground='white',
selectbackground='#27374D', selectforeground='white',
normalbackground='white', normalforeground='black',
weekendbackground='#BDDCD6', weekendforeground='black',
othermonthforeground='gray50', othermonthbackground='white',
othermonthwebackground='#EEE9DA')
cal.pack(pady=20)
cal.bind("<<CalendarSelected>>", on_date_select)
# 메모 입력을 위한 텍스트 필드
memo_entry = tk.Text(root, height=5, width=50)
memo_entry.pack(pady=5)
# 메모 저장 버튼
save_button = tk.Button(root, text="메모 저장", command=save_memo)
save_button.pack(pady=5)
# 검색 필드 및 버튼
search_entry = tk.Entry(root, width=30)
search_entry.pack(pady=5)
search_button = tk.Button(root, text="메모 검색", command=search_memo)
search_button.pack(pady=5)
root.mainloop()
검색 기능을 위한 코드
1. 검색 필드 및 버튼 추가
search_entry = tk.Entry(root, width=30)
search_entry.pack(pady=5)
search_button = tk.Button(root, text="메모 검색", command=search_memo)
search_button.pack(pady=5)
- 사용자가 메모를 쉽게 검색할 수 있도록 검색 필드와 버튼을 추가합니다.
2. 검색 함수
def search_memo():
search_query = search_entry.get()
if not search_query:
messagebox.showinfo("검색", "검색어를 입력해주세요.")
return
matching_memos = []
for date, memo in memos.items():
if search_query.lower() in memo.lower():
matching_memos.append(f"{date}: {memo}")
if matching_memos:
result_message = "\n\n".join(matching_memos)
messagebox.showinfo("검색 결과", f"일치하는 메모:\n\n{result_message}")
else:
messagebox.showinfo("검색 결과", "일치하는 메모가 없습니다.")
- search_entry.get()
- get() 메서드는 Entry 위젯에서 사용자가 입력한 텍스트를 가져옵니다.
- search_query 변수에 사용자의 입력 값을 저장합니다.
- if not search_query
- 이 if 문은 사용자가 검색어를 입력했는지 확인합니다.
- 검색어가 비어있으면, messagebox.showinfo를 사용하여 사용자에게 검색어 입력을 요청하는 메시지를 표시합니다.
- return 문은 함수의 나머지 부분이 실행되지 않도록 합니다.
- 리스트 초기화 (matching_memos = [])
- matching_memos는 일치하는 메모를 저장하기 위한 빈 리스트입니다.
- 검색 결과를 저장하기 위해 사용됩니다.
- if matching_memos
- 이 if 문은 일치하는 메모가 하나라도 있는지 확인합니다.
- join 메서드를 사용하여 리스트에 저장된 메모를 문자열로 결합합니다.
- 일치하는 메모가 있으면, messagebox.showinfo로 결과를 표시합니다.
- else
- if 문의 조건이 거짓일 때 실행됩니다.
- 일치하는 메모가 없을 경우, 사용자에게 알리는 메시지를 표시합니다.
결과
검색어와 메모가 일치할 경우 팝업창으로 날짜확인이 가능합니다.
파이썬으로 달력 만들기 이전 포스팅
기본 달력 출력
https://riwltnchgo.tistory.com/112
[Python] 파이썬으로 달력 만들기1 - <GUI>
파이썬을 사용하여 달력을 표시하는 GUI 프로그램 입니다. 이 예제에서는 tkinter 라이브러리와 tkcalendar 모듈을 사용합니다. 1. 필요한 모듈 설치하기 tkcalendar 모듈을 설치해야 합니다. pip install tkca
riwltnchgo.tistory.com
달력 색상 바꾸기
https://riwltnchgo.tistory.com/113
[Python] 파이썬으로 달력 만들기2 - <색상 바꾸기>
이전 포스팅에서 만든 달력의 색상을 바꾸는 코드입니다! 기본 달력을 만드는 방법은 아래 게시물을 참고 해주세요! https://riwltnchgo.tistory.com/112 [Python] 파이썬으로 달력 만들기1 - 파이썬을 사용
riwltnchgo.tistory.com
달력에 메모장 추가
https://riwltnchgo.tistory.com/114
[Python] 파이썬으로 달력 만들기3 - <메모 저장>
이전 포스팅에서 만든 달력에 메모장을 추가하는 코드입니다! 기본 달력을 만드는 방법은 아래 게시물을 참고 해주세요! https://riwltnchgo.tistory.com/112 [Python] 파이썬으로 달력 만들기1 - 파이썬을
riwltnchgo.tistory.com
'프로그래밍 > 파이썬' 카테고리의 다른 글
[Python] 파이썬으로 시간, 분, 초 변환하기 (0) | 2024.04.02 |
---|---|
[Python] 파이썬으로 만든 간단한 숫자 게임 (0) | 2024.02.02 |
[Python] 파이썬으로 달력 만들기3 - <메모 저장> (1) | 2024.01.28 |
[Python] 파이썬으로 달력 만들기2 - <색상 바꾸기> (0) | 2024.01.27 |
[Python] 파이썬으로 달력 만들기1 - <GUI> (0) | 2024.01.26 |