본문 바로가기
프로그래밍/파이썬

tkinter 모듈을 사용하여 문장 암기 프로그램 만들기

by 노마드데이터랩 2023. 4. 2.
728x90
반응형

이 코드는 tkinter 모듈을 이용해 간단한 문장 암기 프로그램을 만드는 코드입니다.

우선 문장 리스트 sentences와 현재 문장 인덱스 current_sentence를 정의합니다.

check_answer 함수는 엔트리에 입력된 값과 현재 문장을 비교하여 정답 여부를 판단합니다. 정답일 경우 label_result 레이블에 "Correct!"를 출력하고, 1초 뒤 next_sentence 함수를 호출하여 다음 문장을 출력합니다. 오답일 경우 label_result 레이블에 "Wrong!"를 출력하고 입력받는 엔트리를 초기화합니다.

next_sentence 함수는 현재 문장 인덱스를 증가시킨 후 마지막 문장이 아니면 다음 문장을 출력합니다. 마지막 문장이면 윈도우를 종료합니다.

root 변수로 tkinter 윈도우를 생성합니다. label_sentence 레이블에 현재 문장을 출력하고, entry에 입력을 받습니다. button_check 버튼을 클릭하면 check_answer 함수가 실행되고, label_result 레이블에 정답 여부를 출력합니다.

마지막으로 mainloop 함수를 호출하여 tkinter 윈도우가 활성화되도록 합니다.

from tkinter import *

# 문장 리스트
sentences = ["This is sentence 1.", "This is sentence 2.", "This is sentence 3."]

# 현재 문장 인덱스
current_sentence = 0

# 정답 확인 함수
def check_answer():
    global current_sentence
    # 입력한 값과 현재 문장을 비교
    if entry.get() == sentences[current_sentence]:
        label_result.config(text="Correct!")
        # 1초 뒤 다음 문장 출력
        root.after(1000, next_sentence)
    else:
        label_result.config(text="Wrong!")
        entry.delete(0, END)

# 다음 문장 출력 함수
def next_sentence():
    global current_sentence
    current_sentence += 1
    # 마지막 문장이 아니면 다음 문장 출력
    if current_sentence < len(sentences):
        label_sentence.config(text=sentences[current_sentence])
        entry.delete(0, END)
    # 마지막 문장이면 종료
    else:
        root.destroy()

# tkinter 윈도우 생성
root = Tk()

# 문장 출력 레이블
label_sentence = Label(root, text=sentences[current_sentence], font=("Arial", 20))
label_sentence.pack()

# 입력받는 엔트리
entry = Entry(root, font=("Arial", 20))
entry.pack()

# 정답 확인 버튼
button_check = Button(root, text="Check", command=check_answer, font=("Arial", 20))
button_check.pack()

# 정답 결과 레이블
label_result = Label(root, font=("Arial", 20))
label_result.pack()

root.mainloop()

 

출력물

결과가 맞으면 Correct

결과가 틀리면 Incorrect. Try again.

728x90
반응형

댓글