Métodos necesarios
La clase QMessageBox tiene muchos métodos para crear varios tipos de cuadros de mensaje. Algunos de los métodos más utilizados de la clase QMessageBox se describen a continuación:
Nombres de métodos | Propósito |
---|---|
setTitle () | Se usa para mostrar el título personalizado. |
setText () | Se usa para configurar el texto del mensaje principal. |
setDetailText () | Se utiliza para mostrar una ventana con un botón de detalles; el texto del mensaje aparecerá después de que el usuario haga clic en el botón. |
setInformativeText | Se usa para mostrar el mensaje adicional. |
setIcon () | Se utiliza para establecer un icono en el cuadro de mensaje según el tipo de mensaje. |
setWindowTitle () | Se usa para establecer el título de la ventana del mensaje. |
setDefaultButton () | Se utiliza para establecer el botón en el cuadro de mensaje predeterminado; el botón emitirá una señal de clic cuando el Ingresar se presiona la tecla. |
setEscapeButton () | Se usa para configurar cualquier botón para que funcione como una tecla de escape; el botón emitirá 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 según el tipo de mensaje, como Aceptar, 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 mensaje usando la clase QMessageBox.
Ejemplo 1: crear un cuadro de mensaje informativo
El siguiente script creará un cuadro de mensaje informativo simple usando la clase QMessageBox. Este tipo de cuadro de mensaje proporciona el mensaje informativo solo para el usuario. OK es el botón predeterminado en el cuadro de mensaje. Aquí, QMessageBox.Información se utiliza en el setIcon () método para mostrar el icono de información en el cuadro de mensaje.
# Importar módulos necesariosimportar sys
de PyQt5.QtWidgets importan QApplication, QMainWindow, QMessageBox
# Defina la clase para mostrar un mensaje informativo
clase MessageWindow (QMainWindow):
def __init __ (yo):
# Llamar al constructor padre
súper().__en eso__()
# Crea el objeto de cuadro de mensaje
uno mismo.msg = QMessageBox ()
# Establecer el icono de información
uno mismo.msg.setIcon (QMessageBox.Información)
# Establecer el mensaje principal
uno mismo.msg.setText ("La tarea se completó correctamente.")
# Establecer el título de la ventana
uno mismo.msg.setWindowTitle ("Mensaje informativo")
# Mostrar el cuadro de mensaje
uno mismo.msg.show()
# Crea el objeto de la aplicación y ejecuta la aplicación
app = QApplication (sys.argv)
Win = MessageWindow ()
aplicación.ejecutivo ()
El siguiente cuadro de mensaje aparecerá después de que se ejecute 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. La advertencia se utiliza en el setIcon () método para mostrar el icono de advertencia en el cuadro de mensaje. La OK y Cancelar Los botones se agregan al cuadro de mensaje mediante 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 en el que ha hecho clic el usuario. Si el usuario hace clic en el OK botón, luego el texto, 'Se presiona el botón OK,'imprimirá; de lo contrario, el 'Se presiona el botón Cancelarse imprimirá el texto.
# Importar módulos necesariosimportar sys
de PyQt5.QtWidgets importan QApplication, QMainWindow, QMessageBox
# Defina la clase para mostrar un mensaje informativo
clase MessageWindow (QMainWindow):
def __init __ (yo):
# Llamar al constructor padre
súper().__en eso__()
# Crea el objeto de cuadro de mensaje
uno mismo.msgWarning = QMessageBox ()
# Establecer el icono de advertencia
uno mismo.msgWarning.setIcon (QMessageBox.Advertencia)
# Establecer el mensaje principal
uno mismo.msgWarning.setText ("Nombre variable no está definida.")
# Establecer dos botones para el cuadro de mensaje
uno mismo.msgWarning.setStandardButtons (QMessageBox.Ok | QMessageBox.Cancelar)
# Llame al método personalizado al hacer clic en el botón
uno mismo.msgWarning.buttonClicked.conectar (uno mismo.msgButton)
# Establecer el título de la ventana
uno mismo.msgWarning.setWindowTitle ("Mensaje de advertencia")
# Mostrar el cuadro de mensaje
uno mismo.msgWarning.show()
# Definir 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.")
# Crea el objeto de la aplicación y ejecuta la aplicación
app = QApplication (sys.argv)
Win = MessageWindow ()
aplicación.exec_ ()
El siguiente cuadro de mensaje aparecerá después de que se ejecute el script anterior.
Si el usuario hace clic en el OK botón, aparecerá la siguiente salida.
Ejemplo 3: crear un Pregunta Advertencia Mensaje
El siguiente script creará el cuadro de mensaje de pregunta utilizando la clase QMessageBox. Este tipo de cuadro de mensaje proporciona el mensaje de pregunta para que el usuario realice la acción en particular según la decisión del usuario. Aquí, QMessageBox.Pregunta se utiliza en el setIcon () método para mostrar el icono de pregunta en el cuadro de mensaje. La sí y No Los botones se agregan al cuadro de mensaje mediante el setStandardButtons () método. La No El botón se establece como el botón predeterminado mediante 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 en el que ha hecho clic el usuario.
# Importar módulos necesariosimportar sys
de PyQt5.QtWidgets importan QApplication, QMainWindow, QMessageBox
# Defina la clase para mostrar un mensaje informativo
clase MessageWindow (QMainWindow):
def __init __ (yo):
# Llamar al constructor padre
súper().__en eso__()
# Crea el objeto de cuadro de mensaje
uno mismo.msgQuestion = QMessageBox ()
# Establecer el icono de advertencia
uno mismo.msgQuestion.setIcon (QMessageBox.Pregunta)
# Establecer el mensaje principal
uno mismo.msgQuestion.setText ("¿Quieres continuar?")
# Establecer dos botones para el cuadro de mensaje
uno mismo.msgQuestion.setStandardButtons (QMessageBox.Si | QMessageBox.No)
uno mismo.msgQuestion.setDefaultButton (QMessageBox.No)
# Llame al método personalizado al hacer clic en el botón
uno mismo.msgQuestion.buttonClicked.conectar (uno mismo.msgButton)
# Establecer el título de la ventana
uno mismo.msgQuestion.setWindowTitle ("Hacer una pregunta al usuario")
# Mostrar el cuadro de mensaje
uno mismo.msgQuestion.show()
# Definir función para los botones
def msgButton (self, i):
si yo.text () == '& Sí':
imprimir ("La tarea continúa ...")
demás:
print ("Has cancelado la tarea.")
# Crea el objeto de la aplicación y ejecuta la aplicación
app = QApplication (sys.argv)
Win = MessageWindow ()
aplicación.exec_ ()
El siguiente cuadro de mensaje aparecerá después de que se ejecute el script anterior.
Si el usuario hace clic en el Ingresar sin seleccionar ningún botón, 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 mensaje 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.