Métodos Necessários
A classe QMessageBox possui muitos métodos para criar vários tipos de caixas de mensagem. Alguns dos métodos mais comumente usados da classe QMessageBox são descritos abaixo:
Nomes de métodos | Objetivo |
---|---|
setTitle () | Usado para exibir o título personalizado. |
setText () | Usado para definir o texto da mensagem principal. |
setDetailText () | Usado para exibir uma janela com um botão de detalhes; o texto da mensagem aparecerá depois que o usuário clicar no botão. |
setInformativeText | Usado para exibir a mensagem adicional. |
setIcon () | Usado para definir um ícone na caixa de mensagem com base no tipo de mensagem. |
setWindowTitle () | Usado para definir o título da janela de mensagem. |
setDefaultButton () | Usado para definir o botão na caixa de mensagem padrão; o botão irá liberar um sinal clicado quando o Entrar a tecla está pressionada. |
setEscapeButton () | Usado para definir qualquer botão para funcionar como uma tecla de escape; o botão irá liberar um sinal clicado quando o Escapar a tecla está pressionada. |
setStandardButtons () | Vários botões padrão podem ser usados na caixa de mensagem com base no tipo de mensagem, como OK, Sim, Não, Cancelar, Fechar, etc. |
Uso de QMessageBox
As seções a seguir deste tutorial fornecem exemplos que mostrarão como criar diferentes caixas de mensagens usando a classe QMessageBox.
Exemplo 1: Criar uma caixa de mensagem informativa
O script a seguir criará uma caixa de mensagem informativa simples usando a classe QMessageBox. Este tipo de caixa de mensagem fornece a mensagem informativa apenas para o usuário. OK é o botão padrão na caixa de mensagem. Aqui, QMessageBox.Em formação é usado no setIcon () método para exibir o ícone de informação na caixa de mensagem.
# Importe os módulos necessáriosimport sys
de PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox
# Defina a classe para exibir uma mensagem informativa
classe MessageWindow (QMainWindow):
def __init __ (self):
# Chame o construtor pai
super().__iniciar__()
# Crie o objeto de caixa de mensagem
auto.msg = QMessageBox ()
# Defina o ícone de informação
auto.msg.setIcon (QMessageBox.Em formação)
# Defina a mensagem principal
auto.msg.setText ("A tarefa foi completada com sucesso.")
# Defina o título da janela
auto.msg.setWindowTitle ("Mensagem Informativa")
# Exibir a caixa de mensagem
auto.msg.mostrar()
# Crie um objeto de aplicativo e execute o aplicativo
app = QApplication (sys.argv)
Win = MessageWindow ()
aplicativo.exec ()
A seguinte caixa de mensagem aparecerá após o script acima ser executado.
Exemplo 2: Criar uma caixa de mensagem de aviso
O script a seguir criará a caixa de mensagem de aviso usando a classe QMessageBox. Este tipo de caixa de mensagem fornece uma mensagem de aviso para o usuário. O aviso é usado no setIcon () método para exibir o ícone de aviso na caixa de mensagem. O OK e Cancelar botões são adicionados à caixa de mensagem usando o setStandardButtons () método. Um método personalizado chamado msgButton () é definido na classe para rastrear o botão na caixa de mensagem que foi clicado pelo usuário. Se o usuário clicar no OK botão, então o texto, 'O botão OK está pressionado,'irá imprimir; caso contrário, o 'O botão Cancelar está pressionado'o texto será impresso.
# Importe os módulos necessáriosimport sys
de PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox
# Defina a classe para exibir uma mensagem informativa
classe MessageWindow (QMainWindow):
def __init __ (self):
# Chame o construtor pai
super().__iniciar__()
# Crie o objeto de caixa de mensagem
auto.msgWarning = QMessageBox ()
# Defina o ícone de Aviso
auto.msgWarning.setIcon (QMessageBox.Aviso)
# Defina a mensagem principal
auto.msgWarning.setText ("Nome variável é indefinida.")
# Defina dois botões para a caixa de mensagem
auto.msgWarning.setStandardButtons (QMessageBox.Ok | QMessageBox.Cancelar)
# Chame o método personalizado no botão clicado
auto.msgWarning.buttonClicked.conectar (eu mesmo.msgButton)
# Defina o título da janela
auto.msgWarning.setWindowTitle ("Mensagem de Aviso")
# Exibir a caixa de mensagem
auto.msgWarning.mostrar()
# Definir função para os botões
def msgButton (self, i):
se eu.text () == '& OK':
imprimir ("O botão OK está pressionado.")
senão:
print ("O botão Cancelar foi pressionado.")
# Crie um objeto de aplicativo e execute o aplicativo
app = QApplication (sys.argv)
Win = MessageWindow ()
aplicativo.exec_ ()
A seguinte caixa de mensagem aparecerá após o script acima ser executado.
Se o usuário clicar no OK botão, a seguinte saída aparecerá.
Exemplo 3: Crie um Pergunta Aviso Mensagem
O script a seguir criará a caixa de mensagem da pergunta usando a classe QMessageBox. Este tipo de caixa de mensagem fornece a mensagem de pergunta para o usuário tomar uma ação específica com base na decisão do usuário. Aqui, QMessageBox.Pergunta é usado no setIcon () método para exibir o ícone da pergunta na caixa de mensagem. O sim e Não botões são adicionados à caixa de mensagem usando o setStandardButtons () método. O Não o botão é definido como o botão padrão usando o método setDefaultButton (). Um método personalizado chamado msgButton () é definido na classe para rastrear o botão na caixa de mensagem que foi clicado pelo usuário.
# Importe os módulos necessáriosimport sys
de PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox
# Defina a classe para exibir uma mensagem informativa
classe MessageWindow (QMainWindow):
def __init __ (self):
# Chame o construtor pai
super().__iniciar__()
# Crie o objeto de caixa de mensagem
auto.msgQuestion = QMessageBox ()
# Defina o ícone de Aviso
auto.msgQuestion.setIcon (QMessageBox.Pergunta)
# Defina a mensagem principal
auto.msgQuestion.setText ("Deseja continuar?")
# Defina dois botões para a caixa de mensagem
auto.msgQuestion.setStandardButtons (QMessageBox.Sim | QMessageBox.Não)
auto.msgQuestion.setDefaultButton (QMessageBox.Não)
# Chame o método personalizado no botão clicado
auto.msgQuestion.buttonClicked.conectar (eu mesmo.msgButton)
# Defina o título da janela
auto.msgQuestion.setWindowTitle ("Fazendo perguntas ao usuário")
# Exibir a caixa de mensagem
auto.msgQuestion.mostrar()
# Definir função para os botões
def msgButton (self, i):
se eu.text () == '& Sim':
print ("A tarefa está continuando ...")
senão:
print ("Você cancelou a tarefa.")
# Crie um objeto de aplicativo e execute o aplicativo
app = QApplication (sys.argv)
Win = MessageWindow ()
aplicativo.exec_ ()
A seguinte caixa de mensagem aparecerá após o script acima ser executado.
Se o usuário clicar no Entrar chave sem selecionar nenhum botão, então a Não O botão será ativado por padrão e a seguinte saída aparecerá:
Conclusão
Neste tutorial, três tipos diferentes de caixas de mensagem foram criados usando a classe QMessageBox. Esperançosamente, este tutorial ajudou você a entender melhor o uso desta classe. Agora você deve ser capaz de criar uma caixa de mensagem para o aplicativo PyQt.