Cómo usar Pyqt QMessageBox

Cómo usar Pyqt QMessageBox
El cuadro de mensaje se utiliza en la aplicación GUI para proporcionar la información necesaria para el usuario o para pedirle al usuario que tome medidas en función del mensaje. Se pueden crear cuatro tipos de cuadros de mensaje para cualquier aplicación de GUI, incluido el cuadro de mensaje informativo, el cuadro de mensaje de advertencia, el cuadro de mensaje crítico y el cuadro de mensaje de la pregunta. El QMessageBox La clase de Pyqt se usa en Python para crear un cuadro de mensaje. Este tutorial le muestra cómo usar la clase QMessageBox para crear varios cuadros de mensaje.

Métodos necesarios

La clase QMessageBox tiene muchos métodos para crear varios tipos de cuadros de mensajes. A continuación se describen algunos de los métodos más utilizados de la clase QMessageBox:

Nombres de métodos Objetivo
settitle () Se usa para mostrar el título personalizado.
setText () Utilizado para establecer el texto del mensaje principal.
setDetailText () Se usa para mostrar una ventana con un botón Detalles; El texto del mensaje aparecerá después de que el usuario haga clic en el botón.
setInformativExtext Se utiliza para mostrar el mensaje adicional.
seticon () Se usa para establecer un icono en el cuadro de mensaje basado en el tipo de mensaje.
setwindowtitle () Se usa para establecer el título de la ventana del mensaje.
setDefaultButton () Se usa para configurar el botón en el cuadro de mensaje predeterminado; El botón liberará una señal de clic cuando el Ingresar se presiona la tecla.
setescapeButton () Se usa para establecer cualquier botón para funcionar como una tecla de escape; El botón liberará una señal de clic cuando el Escapar se presiona la tecla.
setStandardButtons () Se pueden usar varios botones estándar en el cuadro de mensaje en función del tipo de mensaje, como OK, sí, no, cancelar, cerrar, etc.

Uso de QMessageBox

Las siguientes secciones de este tutorial proporcionan ejemplos que le mostrarán cómo crear diferentes cuadros de mensajes utilizando la clase QMessageBox.

Ejemplo 1: Crear un cuadro de mensaje informativo

El siguiente script creará un cuadro de mensaje informativo simple utilizando la clase QMessageBox. Este tipo de cuadro de mensaje proporciona el mensaje informativo solo para el usuario. DE ACUERDO es el botón predeterminado en el cuadro de mensaje. Aquí, QMessageBox.Información se usa en el seticon () Método para mostrar el icono de información en el cuadro de mensaje.

# Importar módulos necesarios
Sys de importación
de pyqt5.QtWidgets Import Qapplication, QMainWindow, QMessageBox
# Definir clase para mostrar un mensaje informativo
clase MessageWindow (QMainWindow):
def __init __ (self):
# Llame al constructor matriz
súper().__en eso__()
# Crea el objeto MessageBox
ser.msg = QMessageBox ()
# Establecer el icono de información
ser.machista.Seticon (QMessageBox.Información)
# Establecer el mensaje principal
ser.machista.setText ("La tarea se completa con éxito.")
# Establecer el título de la ventana
ser.machista.setWindowtitle ("Mensaje informativo")
# Muestra el cuadro de mensaje
ser.machista.espectáculo()
# Crear objeto de aplicación y ejecutar la aplicación
APP = QAPPLICATION (SYS.argv)
Win = MessageWindow ()
aplicación.exec ()

El siguiente cuadro de mensaje aparecerá después de ejecutar el script anterior.

Ejemplo 2: crear un cuadro de mensaje de advertencia

El siguiente script creará el cuadro de mensaje de advertencia utilizando la clase QMessageBox. Este tipo de cuadro de mensaje proporciona el mensaje de advertencia para el usuario. El advertencia se usa en el seticon () Método para mostrar el icono de advertencia en el cuadro de mensaje. El DE ACUERDO y Cancelar Los botones se agregan al cuadro de mensaje utilizando el setStandardButtons () método. Un método personalizado llamado msgbutton () se define en la clase para rastrear el botón en el cuadro de mensaje que ha sido hecho clic por el usuario. Si el usuario hace clic en el DE ACUERDO botón, luego el texto, 'Se presiona el botón OK,'imprimirá; de lo contrario, el 'Se presiona el botón de cancelar'El texto se imprimirá.

# Importar módulos necesarios
Sys de importación
de pyqt5.QtWidgets Import Qapplication, QMainWindow, QMessageBox
# Definir clase para mostrar un mensaje informativo
clase MessageWindow (QMainWindow):
def __init __ (self):
# Llame al constructor matriz
súper().__en eso__()
# Crea el objeto MessageBox
ser.msgwarning = QMessageBox ()
# Establecer el icono de advertencia
ser.msgenning.Seticon (QMessageBox.Advertencia)
# Establecer el mensaje principal
ser.msgenning.setText ("Nombre La variable no está definida.")
# Establecer dos botones para el cuadro de mensaje
ser.msgenning.setStandardButtons (QMessageBox.OK | QMessageBox.Cancelar)
# Llame al método personalizado en el botón Haga clic en
ser.msgenning.botón de botón.conectar (yo.msgbutton)
# Establecer el título de la ventana
ser.msgenning.setWindowtitle ("Mensaje de advertencia")
# Muestra el cuadro de mensaje
ser.msgenning.espectáculo()
# Definir la función para los botones
Def msgbutton (self, i):
si yo.text () == '& ok':
Imprimir ("Se presiona el botón OK.")
demás:
Imprimir ("Se presiona el botón Cancelar.")
# Crear objeto de aplicación y ejecutar la aplicación
APP = QAPPLICATION (SYS.argv)
Win = MessageWindow ()
aplicación.Exec_ ()

El siguiente cuadro de mensaje aparecerá después de ejecutar el script anterior.

Si el usuario hace clic en el DE ACUERDO Botón, aparecerá la siguiente salida.

Ejemplo 3: crear un Pregunta Advertencia Mensaje

El siguiente script creará el cuadro de mensaje de la pregunta utilizando la clase QMessageBox. Este tipo de cuadro de mensaje proporciona el mensaje de pregunta para que el usuario tome la acción particular basada en la decisión del usuario. Aquí, QMessageBox.Pregunta se usa en el seticon () Método para mostrar el icono de la pregunta en el cuadro de mensaje. El y No Los botones se agregan al cuadro de mensaje utilizando el setStandardButtons () método. El No El botón se establece como el botón predeterminado usando el método setDefaultButton (). Un método personalizado llamado msgbutton () se define en la clase para rastrear el botón en el cuadro de mensaje que ha sido hecho clic por el usuario.

# Importar módulos necesarios
Sys de importación
de pyqt5.QtWidgets Import Qapplication, QMainWindow, QMessageBox
# Definir clase para mostrar un mensaje informativo
clase MessageWindow (QMainWindow):
def __init __ (self):
# Llame al constructor matriz
súper().__en eso__()
# Crea el objeto MessageBox
ser.msgquestion = QMessageBox ()
# Establecer el icono de advertencia
ser.msgQuartion.Seticon (QMessageBox.Pregunta)
# Establecer el mensaje principal
ser.msgQuartion.setText ("¿Quieres continuar??")
# Establecer dos botones para el cuadro de mensaje
ser.msgQuartion.setStandardButtons (QMessageBox.SÍ | QMessageBox.No)
ser.msgQuartion.setDefaultButton (QMessageBox.No)
# Llame al método personalizado en el botón Haga clic en
ser.msgQuartion.botón de botón.conectar (yo.msgbutton)
# Establecer el título de la ventana
ser.msgQuartion.setWindowtitle ("Hacer una pregunta al usuario")
# Muestra el cuadro de mensaje
ser.msgQuartion.espectáculo()
# Definir la función para los botones
Def msgbutton (self, i):
si yo.text () == 'y sí':
imprimir ("La tarea continúa ...")
demás:
Imprimir ("Has cancelado la tarea.")
# Crear objeto de aplicación y ejecutar la aplicación
APP = QAPPLICATION (SYS.argv)
Win = MessageWindow ()
aplicación.Exec_ ()

El siguiente cuadro de mensaje aparecerá después de ejecutar el script anterior.

Si el usuario hace clic en el Ingresar clave sin seleccionar ningún botón, luego el No El botón se activará de forma predeterminada y aparecerá la siguiente salida:

Conclusión

En este tutorial, se crearon tres tipos diferentes de cuadros de mensajes utilizando la clase QMessageBox. Con suerte, este tutorial te ayudó a comprender mejor el uso de esta clase. Ahora debería poder crear un cuadro de mensaje para la aplicación PYQT.