관리 메뉴

개발자비행일지

파이썬 GUI 메시지 박스 본문

▶ Python

파이썬 GUI 메시지 박스

Cyber0946 2018. 11. 26. 17:03

파이썬 3.6 이상의 버전을 사용해서 tkinter 모듈로 GUI를 커스터마이즈를 하는 예제를 연습해 본다. 본 예제들은 에이콘 사의 파이썬 GUI 프로그래밍 쿡북 2/e의 내용을 필자가 개인 학습 목적에서 작성하는 글이다.


파이썬 GUI를 사용해서 정보, 경고, 오류 메시지 박스 생성하기

정보, 경고, 오류 메시지 박스 생성하기 

메시지 박스는 사용자에게 추가 정보나, 경고,  오류 발생여부에 대해서 피드백을 제공하기 위해서 기존의 윈도우에서 독립적인 추가 윈도우를 말한다. 이는 messagebox 모듈을 임포트 하기만 하면 간단하게 생성하고 조작할 수 있다. 


#import 모음

#tkinter 모듈을 임포트 하며, tk라는 명칭으로 호출하겠다.

import tkinter as tk

#tkinter 모듈에서 messagebox를 임포트 하며, msg라는명칭으로 호출하겠다.

from tkinter import messagebox as msg


사용하기 위한 준비과정은 끝났다. 이제 우리가 할일은 메시지 박스 객체를 생성해주고 이 메시지 박스객체에서 정보를 표시할건지 경고를 표시할건기 아니면 오류를 표시할것인지 설정을 하면된다. 아래의 코드를 실행하면 다음과 같은 결과를 출력한다.


#메시지 박스를 msg로 호출한뒤 showinfo()함수를 사용한다. 

msg.showinfo('메시지박스 제목입니다.', '이 예제는 에이콘 사의 교재에 있는 예제입니다.') 




#메시지 박스를 msg로 호출한뒤 showwarning()함수를 사용한다. 

msg.showwarning('메시지박스 제목입니다.', '이 예제는 에이콘 사의 교재에 있는 예제입니다.') 


위와 같이 메세지 박스에서 제공해주는 함수에 따라 다른 형태의 아이콘과 효과음이 출력되는 것을 확인할 수 있다. 마지막으로 오류 메시지를 출력하고 싶을 때는 다음과 같이 한다.

#메시지 박스를 msg로 호출한뒤 showerror()함수를 사용한다. 

msg.showerror('메시지박스 제목입니다.', '이 예제는 에이콘 사의 교재에 있는 예제입니다.') 



메시지 박스를 사용하면 위의 그림과 같이 2개의 윈도우가 나타난다. 

우리가 메시지 박스만 출력하고 싶을 때는 다음과 같이 하면 메시지 박스만 나타나게 할 수 있다. 

기본 윈도우는 이벤트 루프에 의해 발생하는데 우리는 이 이벤트 윈도우를 숨기는 옵션을 설정함으로 써 메시지 박스만 출력할 수 있다. 

from tkinter import messagebox as msg

from tkinter import Tk

root= Tk()

root.withdraw()

msg.showinfo('메시지박스 제목입니다.', '이 예제는 에이콘 사의 교재에 있는 예제입니다.')  


메시지 박스 객체인 msg로 호출을 shoinfo 함수를 호출 할 떄, 첫번째 인자에 빈 따옴표를 입력하거나 생략하면 그 다음 입력되는 텍스트가 제목으로 출력된다. 


우리가 루트 윈도우에어 사용한 withdraw() 함수는 tkinter 의 root 객체가 표시 되지 않도록 해준다.