본문 바로가기
[ CODING STUDY ]/》파이썬 공부

파이썬 20장(tkinter_04, 메시지박스 , after(), 시간, GUI, import, 타이머)

by MRG 2020. 12. 7.
728x90
반응형

▣ 안녕하세요^^
오늘은 저번장에 이어서 tkinter모듈을 사용해서 GUI를 구현 보도록 하겠습니다. 
먼저 메시지박수를 출력하는걸 간단하게 구현해보겠습니다.

 

▣ 우선 메시지 박스를 사용하려면 
import.tkinter.messagebox 모듈을 추가해주시고,
우리가 저번에 했던것처럼 버튼을 먼저 생성해주겠습니다.
그리고 버튼을 클릭할 때, 메시지를 출력하게 할 텐데
tkinter.messagebox.showinfo("타이틀 제목", "내용")을 함수에 넣습니다. 
그리고 버튼에 command를 함수로 지정해줍니다.

 

▣ 실행을 해보면 버튼을 클릭할 때 이렇게 메시지가 나오게 됩니다. 


▣ 여기서 중요한 건 
tkinter.messagebox.showinfo() == 정보 표시
tkinter.messagebox.showwarning() == 경고 표시
tkinter.messagebox.showerror() == 에러 표시
tkinter.messagebox.askesno() =="Yes" "No" 표시
tkinter.messagebox.askokcancel() == "OK" "cancel" 표시
이렇게 여러 가지 메시지 박스가 있습니다. 
필요하신 부분은 꼭 한 번씩 사용해보시기 바랍니다.



▣ 이번에는 after() 함수를 사용해보겠습니다.
이 함수는 after(시간, 함수) 정해주면 매개변수 시간 후에 함수를 실행해주는 
아주 유용한 함수입니다. 
이걸로 우리는 타이머를 제작해보겠습니다.

 

 

▣ 먼저 전역 변수로 count 변수 직접 초를 출력하는 전역 변수입니다.
그리고 time은 시간을 제한하는 초입니다. 
0~4까지 5초에 시간을 제한하기 위해 전역 변수를 선언했습니다.


▣ 그리고 레이블을 하나 생성해주시고요. 
밑에 tk.after(1000, 함수 이름)을 작성합니다.
참고로 1000은 1초를 의미합니다. 
1000은 밀리초를 의미하기 때문입니다. 
그럼 1초 후에 함수가 실행됩니다.


▣ global을 볼 수 있는데 이건 전역 변수로 접근하기 위해 넣었습니다.
이게 없다면 함수 안에 있는 count와 time은 함수 안에서만 사용하는 
변수이기 때문에 함수가 끝날 때 그 변수는 사라지게 됩니다. 
그래서 전역 변수로 지정을 했습니다.


▣ if time > 4:
     return 

은 함수가 1초마다 호출될 때 time 변수가 +1이 되는데
0, 1, 2, 3, 4 이렇게 5번 5초에 시간이 되면 return 함수가 끝나게 하기 위해서 
조건문을 넣었습니다.
tk.after(1000, countStart)를 넣어주면 
if문이 False이면 1초 후에 다시 자기 자신을 호출하게 됩니다.
이건 재귀 함수라고 합니다. 
그렇게 5초를 진행하게 되면 return으로 함수가 끝나게 되고
5초까지 진행하게 됩니다.

 

▣ after() 함수에 이해를 돕기 위해 아주 간단하게 
만들었습니다. 전역 변수나 조건문을 넣는 게 정답은 아니니 여러분들에 방법으로 
한번 연구해서 만들어보세요. 
그래야 코딩 실력이 향상됩니다. 



▣ 오늘은 이렇게 메시지 박스와 after() 함수를 공부해보았습니다. 
직접 위에 있는 실습들은 여러분들만에 코드로 바꿔보시고 연구해보시면 좋겠습니다.
질문 있으시면 댓글 남겨주세요.
그럼 다음 장에 사 뵙겠습니다.


▣ 포기하지 마세요!!! 저도 했습니다!!! 파이팅!!!

 

728x90
반응형

댓글