더북(TheBook)

위젯 5개를 만들고 grid()로 배치합니다. 첫 번째 행의 텍스트 레이블과 엔트리는 각각 id_lbl, id_ent로, 두 번째 행의 텍스트 레이블과 엔트리는 각각 pw_lbl, pw_ent로 만듭니다. [로그인] 버튼인 btn은 두 행을 병합해야 하므로 rowspan을 2로 설정합니다.

다음으로 기능 부분을 구현해 봅시다. [로그인] 버튼을 누르면 입력된 아이디와 비밀번호를 검증해 로그인 성공 또는 로그인 실패를 안내해야 합니다. 사용자 정의 함수 login()을 만들고 btn 버튼에 command로 연결합니다. 보통은 회원이 여러 명이지만, 여기에서는 간단하게 한 명의 회원만 로그인할 수 있게 합니다. 아이디 Lian, 비밀번호 1234로만 로그인되고 그밖의 조합은 로그인 실패로 처리합시다. 로그인 결과는 세 번째 행에 새로운 텍스트 레이블을 만들어 알려 주겠습니다. 이 코드도 먼저 작성해 본 후 책을 참고하세요. 앞 코드와 동일한 내용은 생략하고 추가되거나 달라진 부분만 나타냈습니다.

# ------ 프로그램 기능 부분 -----
def login():
    if id_ent.get() == 'Lian' and pw_ent.get() == '1234':
        result.set('로그인 성공!')
    else:
        result.set('로그인 실패. \n아이디와 비밀번호를 다시 확인하세요!')

# ----- 프로그램 화면 부분 -----
…
btn = Button(root, text='로그인', width=5, height=3, command=login)
btn.grid(row=0, column=2, rowspan=2)

result = StringVar() # 로그인 성공 여부를 저장하는 동적변수
# 로그인 성공 여부를 나타내는 텍스트 레이블
result_lbl = Label(root, textvariable=result, width=30)
result_lbl.grid(row=2, column=0, columnspan=3)

root.mainloop()
실행결과
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.