더북(TheBook)

2 [제출] 버튼과 연결되는 이벤트인 summit() 함수를 다음과 같이 작성합니다.

def summit():
    correct = 0   # 정답을 맞힌 문제 개수를 저장하는 변수

    if combo1.get() == 'O':
        correct += 1
    if combo2.get() == 'X':
        correct += 1
    if combo3.get() == 'O':
        correct += 1
    # 최종 결과 안내문 만들기
    report = str(correct) + '문제 맞혔습니다.'
    result.set(report)

가장 먼저 맞힌 개수를 저장하는 correct 변수를 0으로 만든 후, 정답을 맞힐 때마다 correct에 1을 더합니다. 콤보박스명.get()으로 콤보박스의 입력값을 가져와 정답과 비교한 후, 정답일 때마다 correct에 1을 더합니다. 최종 결과 안내문과 맞힌 개수(corret)를 문자열로 바꾼 값을 합쳐 report에 저장합니다. report를 동적변수 result에 넣습니다.

(가)에 들어갈 콤보박스의 선택지는 values를 사용해 설정합니다. 프로그램에 등장하는 모든 콤보박스는 OX 리스트를 선택지로 사용합니다((가)).

combo1 = Combobox(root, values=ox, width=3)
...
combo2 = Combobox(root, values=ox, width=3)
...
combo3 = Combobox(root, values=ox, width=3)

[제출] 버튼에는 이벤트가 연결되어야 하므로 commandsummit을 넣어 버튼과 이벤트를 연결합니다((나)). 그리고 버튼의 위치는 row=3, column=0((다), (라))입니다(rowcolumn은 0부터 시작).

btn = Button(root, text='제출', width=5, command=summit)
btn.grid(row=3, column=0, columnspan=2)

최종 결과를 나타내는 lbl_result 레이블에는 결과에 따라 내용이 달라지는 안내문이 표시됩니다. 따라서 textvariable 옵션으로 동적변수 result를 연결합니다((마)).

lbl_result = Label(root, textvariable=result, width=35, anchor='center')

본문으로

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.