본문 바로가기
프로그래밍 독학/python

[python] 파이썬 GUI tkinter Entry 입력값 받기, 메시지박스, return 상호평가 프로그램 만들기(6)

by 파레토맨 2022. 4. 6.

▶Entry.get

지난 포스팅에서 입력값을 받기 위하여 Entry 칸을 만들었는데요

칸을 만들었으니 이제는 입력을 받아봐야겠죠
 
Entry 메서드에서 get은 기입 창에서 받은 텍스트를 문자열로 반환한다고 합니다.

저는 평가받는 사람의 숫자를 받아야 하니

Numb = PeopleEntry.get()

이런 식으로 써보았습니다. 기존의 코드 
Numb = input()
에서 input() 대신에 사용해보았습니다.

messagebox

tkinter를 사용하면서 예외처리도 다시 해주어야 했습니다.

기존의 코드에서 print()를 대신해주어야 할 것이 필요했는데요

tkinter에서는 messagebox란 것이 있습니다.

기존의 화면에서 새로운 화면(창, 윈도우)를 띄우는 모듈이라고 합니다.

무언가 경고창이나 알림 창을 띄우기에 적합한 기능인 것 같습니다.

from tkinter import messagebox

위의 코드를 써서 메시지 박스 기능을 사용합니다.

messagebox 뒤에 마침표를 붙인 뒤에 상자의 종류를 써서 구분을 하게 되는데요

정보, 경고, 오류, 질문 등의 메시지 박스를 선택할 수 있는데요

저는 경고나 오류의 메시지 박스는 좀 이미지가 센 것 같아서

정보 메시지 박스를 선택하였습니다.

messagebox.showinfo("제목을 입력", "여기에 내용을 입력.")

위의 코드로 정보 정보 메시지 박스를 띄울 수가 있습니다. 

 

위 이미지와 같은 모습으로 메시지 박스를 뛰울 함수를 만들기 위해

메시지 박스를 이용하여 예외처리 코드를 수정해보았습니다.

저는 Entry를 이용하여 평가자의 이름과 평가받는 사람들의 수를 받았습니다.

if len(Fname) > 5 or len(Fname) == 0:
        messagebox.showinfo("오류", "이름은 1 ~ 5자로 입력해주세요")
        return

    try:
        people = int(Numb)
    except:    
        messagebox.showinfo("오류", "인원에는 숫자를 입력해주세요")
        return

    if people < 7:
        messagebox.showinfo("오류", "7 이상의 수를 입력해주세요")
        return


각각 제대로 동작하는지 확인하기 위하여

이름 칸에 이름 6자, 숫자 칸에 글자, 숫자 6을 입력하고 출력 버튼을 눌러보았습니다.

 

 

제대로 작동하는 것을 확인할 수 있었습니다.

여기서 return 키워드를 사용하였는데요

기존의 코드에서는 quit()을 사용하여 프로그램을 종료하였는데요

프로그램을 종료하지 않고 적합한 값을 입력받아야 하니 return을 사용하였습니다.

return 키워드는 만나는 순간 함수가 종료되는 키워드인데요.

정확히는 함수가 시작한 위치로 돌아간다고 하여 리턴이라고 부른다고 합니다.

따라서 리턴 뒤에 자료를 입력하면 자료를 가지고 다시 돌아가게 됩니다.

예외처리 구문에 return을 사용하여 다시 적합한 입력값을 받게 할 수가 있었습니다.

 

위와 같이 버튼을 눌러 이미지를 띄우는 것과 받은 입력값을 가지고

계산한 함수의 결과를 출력하기 위해서는 버튼에 함수를 적용시켜 주어야 합니다.


다음 포스팅은 지난 포스팅에서 만들었던 버튼에 함수를 적용시켜보는 포스팅이 될 것 같습니다.

 

댓글