Como usar o Pyqt qmessageBox

Como usar o Pyqt qmessageBox
A caixa de mensagens é usada no aplicativo GUI para fornecer as informações necessárias para o usuário ou solicitar ao usuário que tome ações com base na mensagem. Quatro tipos de caixas de mensagem podem ser criados para qualquer aplicativo da GUI, incluindo a caixa de mensagens informativa, caixa de mensagem de aviso, caixa de mensagem crítica e caixa de mensagens de perguntas. O QMessageBox A classe de pyqt é usada no 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 tem muitos métodos para criar vários tipos de caixas de mensagem. Alguns dos métodos mais usados ​​da classe QMessageBox estão descritos abaixo:

Nomes de métodos Propósito
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 da mensagem.
setDefaultButton () Usado para definir o botão no padrão da caixa de mensagem; O botão liberará um sinal clicado quando o Digitar A tecla é pressionada.
SetescapeButton () Usado para definir qualquer botão para funcionar como uma chave de fuga; O botão liberará um sinal clicado quando o Escapar A tecla é 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.

Qmessagebox Uso

As seções a seguir deste tutorial fornecem exemplos que mostrarão como criar diferentes caixas de mensagem usando a classe QMessageBox.

Exemplo 1: Crie 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.Informação é usado no seticon () Método para exibir o ícone de informações na caixa de mensagem.

# Importar módulos necessários
Importar sistemas
de pyqt5.Qtwidgets importar qapplication, qmainwindow, qmessagebox
# Defina a classe para exibir uma mensagem informativa
Classe MessageWindow (QMainWindow):
def __init __ (self):
# Ligue para o construtor pai
super().__iniciar__()
# Crie o objeto MessageBox
auto.msg = QMessageBox ()
# Defina o ícone de informação
auto.msg.Seticon (QMessageBox.Informação)
# Defina a mensagem principal
auto.msg.setText ("A tarefa é concluída com sucesso.")
# Defina o título da janela
auto.msg.setWindowTitle ("Mensagem informativa")
# Exiba a caixa de mensagem
auto.msg.mostrar()
# Crie objeto de aplicativo e execute o aplicativo
app = qapplication (sys.argv)
Win = messageWindow ()
aplicativo.exec ()

A seguinte caixa de mensagem aparecerá depois que o script acima for executado.

Exemplo 2: Crie 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 a 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 Os 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 clicada pelo usuário. Se o usuário clicar no OK botão, então o texto, 'Ok botão é pressionado,'irá imprimir; Caso contrário, o 'O botão cancelar é pressionado'O texto vai imprimir.

# Importar módulos necessários
Importar sistemas
de pyqt5.Qtwidgets importar qapplication, qmainwindow, qmessagebox
# Defina a classe para exibir uma mensagem informativa
Classe MessageWindow (QMainWindow):
def __init __ (self):
# Ligue para o construtor pai
super().__iniciar__()
# Crie o objeto MessageBox
auto.msgwarning = qmessageBox ()
# Defina o ícone de aviso
auto.msgwarning.Seticon (QMessageBox.Aviso)
# Defina a mensagem principal
auto.msgwarning.setText ("Nome A variável é indefinida.")
# Defina dois botões para a caixa de mensagem
auto.msgwarning.SetStandardButtons (QMessageBox.Ok | QMessageBox.Cancelar)
# Ligue para o método personalizado no botão Clique
auto.msgwarning.ButtonClicked.Conecte -se (self.msgbutton)
# Defina o título da janela
auto.msgwarning.setWindowTitle ("Mensagem de aviso")
# Exiba a caixa de mensagem
auto.msgwarning.mostrar()
# Defina função para os botões
Def Msgbutton (self, i):
se eu.text () == '& ok':
Imprimir ("Ok Botão é pressionado.")
outro:
Imprimir ("o botão Cancelar é pressionado.")
# Crie objeto de aplicativo e execute o aplicativo
app = qapplication (sys.argv)
Win = messageWindow ()
aplicativo.exec_ ()

A seguinte caixa de mensagem aparecerá depois que o script acima for executado.

Se o usuário clicar no OK Botão, a seguinte saída será exibida.

Exemplo 3: Crie um Pergunta Aviso Mensagem

O script a seguir criará a caixa de mensagem de perguntas usando a classe QMessageBox. Este tipo de caixa de mensagem fornece a mensagem de pergunta para o usuário tomar a 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 Os 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 clicada pelo usuário.

# Importar módulos necessários
Importar sistemas
de pyqt5.Qtwidgets importar qapplication, qmainwindow, qmessagebox
# Defina a classe para exibir uma mensagem informativa
Classe MessageWindow (QMainWindow):
def __init __ (self):
# Ligue para o construtor pai
super().__iniciar__()
# Crie o objeto MessageBox
auto.msgQuestion = QMessageBox ()
# Defina o ícone de aviso
auto.msgQuestion.Seticon (QMessageBox.Pergunta)
# Defina a mensagem principal
auto.msgQuestion.setText ("Você quer continuar?")
# Defina dois botões para a caixa de mensagem
auto.msgQuestion.SetStandardButtons (QMessageBox.Sim | QMessageBox.Não)
auto.msgQuestion.setDefaultButton (QMessageBox.Não)
# Ligue para o método personalizado no botão Clique
auto.msgQuestion.ButtonClicked.Conecte -se (self.msgbutton)
# Defina o título da janela
auto.msgQuestion.setWindowTitle ("Fazendo perguntas ao usuário")
# Exiba a caixa de mensagem
auto.msgQuestion.mostrar()
# Defina função para os botões
Def Msgbutton (self, i):
se eu.text () == '& sim':
print ("A tarefa continua ...")
outro:
Imprima ("Você cancelou a tarefa.")
# Crie objeto de aplicativo e execute o aplicativo
app = qapplication (sys.argv)
Win = messageWindow ()
aplicativo.exec_ ()

A seguinte caixa de mensagem aparecerá depois que o script acima for executado.

Se o usuário clicar no Digitar chave sem selecionar nenhum botão, então o Não O botão será ativado por padrão, e a saída a seguir será exibida:

Conclusão

Neste tutorial, três tipos diferentes de caixas de mensagem foram criados usando a classe QMessageBox. Felizmente, este tutorial ajudou você a entender melhor o uso desta aula. Agora você deve poder criar uma caixa de mensagem para o aplicativo PYQT.