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: