Pitão

Como usar o PyQt QMessageBox

Como usar o PyQt QMessageBox
A caixa de mensagem é usada no aplicativo GUI para fornecer as informações necessárias para o usuário ou para solicitar que ele execute ações com base na mensagem. Quatro tipos de caixas de mensagem podem ser criados para qualquer aplicativo GUI, incluindo a caixa de mensagem informativa, caixa de mensagem de aviso, caixa de mensagem crítica e caixa de mensagem de pergunta. O QMessageBox classe de PyQt é usado em Python para criar uma caixa de mensagem. Este tutorial mostra como usar a classe QMessageBox para criar várias caixas de mensagem.

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ários
import 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ários
import 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ários
import 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.

SuperTuxKart para Linux
SuperTuxKart é um ótimo título projetado para trazer a você a experiência Mario Kart gratuitamente em seu sistema Linux. É bastante desafiador e diver...
Tutorial de Battle for Wesnoth
The Battle for Wesnoth é um dos jogos de estratégia de código aberto mais populares que você pode jogar no momento. Este jogo não está apenas em desen...
0 A.D. Tutorial
Dos muitos jogos de estratégia que existem, 0 A.D. consegue se destacar como um título abrangente e um jogo muito profundo e tático, apesar de ser de ...