MessageBox
O módulo messagebox fornece um conjunto de métodos para caixas de mensagem e caixas de diálogo.
Todos eles têm a seguinte sintaxe:
messagebox.metodo(titulo, mensagem [, opcoes])
O argumento titulo recebe o titulo que aparece no topo da caixa de mensagem/diálogo.
O argumento mensagem é o corpo da mensagem. Pode ter carateres ‘\n’ para o dividir em múltiplas linhas.
O argumento opcional opcoes, recebe opções que modificam o aspeto da caixa de mensagem/diálogo.
Opções
default
Define qual o botão que será a opção de defeito. Por defeito é o primeiro botão(‘OK’, ‘Sim’, ou ‘Repetir’). Os valores podem ser uma das seguintes constantes: CANCEL, IGNORE, OK, NO, RETRY, ou YES.
icon
Permite definir o icon que aparece na caixa de mensagem/diálogo. Os valores podem ser uma das seguintes constantes: ERROR, INFO, QUESTION, ou WARNING.
parent
Permite definir a janela sobre a qual aparecerá a caixa de mensagem/diálogo. Por defeito, aparece sobre a janela principal da aplicação.
Importação do módulo
O módulo usado na versão de Python 3.x é o módulo messagebox e importamo-lo do seguinte modo:
from tkinter import messagebox
O módulo usado nas versões anteriores é o módulo tkMessageBox e importamo-lo do seguinte modo:
import tkMessageBox
Métodos
Podemos dividir os métodos de messagebox em dois grupos.
O primeiro grupo com os métodos .showinfo(), .showwarning() e .showerror() serve essencialmente para mostrar mensagens, cada uma com um icon diferente, de acordo com a natureza da mensagem:
messagebox.showinfo
O método .showinfo() mostra uma caixa de mensagem de informações :
from tkinter import messagebox messagebox.showinfo("Informação", "Texto informativo")
O código acima produz a seguinte caixa de mensagem:
messagebox.showwarning
O método .showwarning() mostra uma caixa de mensagem de aviso :
from tkinter import messagebox messagebox.showwarning("Aviso", "Texto de aviso")
O código acima produz a seguinte caixa de mensagem:
messagebox.showerror
O método .showerror() mostra uma caixa de mensagem de erro :
from tkinter import messagebox messagebox.showerror("Erro", "Texto de erro")
O código acima produz a seguinte caixa de mensagem:
O segundo grupo de métodos mostra uma caixa de diálogo na qual se pode colocar uma pergunta ao utilizador.
Se o utilizador responder afirmativamente, o método retornará True, se responder negativamente o método retornará False; se o utilizador clicar no botão Cancel, o método retornará None.
messagebox.askokcancel
from tkinter import messagebox answer = messagebox.askokcancel("Eliminar ficheiro","Deseja eliminar este ficheiro?")
O código acima produz a seguinte caixa de diálogo:
messagebox.askretrycancel
from tkinter import messagebox answer = messagebox.askretrycancel("Abrir ficheiro", "Quer voltar a tentar?")
O código acima produz a seguinte caixa de diálogo:
messagebox.askyesno
from tkinter import messagebox answer = messagebox.askyesno("Pergunta","Iniciar jogo?")
O código acima produz a seguinte caixa de diálogo:
messagebox.askyesnocancel
from tkinter import messagebox answer = messagebox.askyesnocancel("Pergunta", "Continuar a jogar?")
O código acima produz a seguinte caixa de diálogo: