PyQt - QMessageBox
QMessageBoxes un cuadro de diálogo modal de uso común para mostrar algún mensaje informativo y, opcionalmente, pedirle al usuario que responda haciendo clic en cualquiera de los botones estándar. Cada botón estándar tiene un título predefinido, una función y devuelve un número hexadecimal predefinido.
Los métodos y enumeraciones importantes asociados con la clase QMessageBox se proporcionan en la siguiente tabla:
No Señor. | Métodos y descripción |
---|---|
1 | setIcon() Muestra el icono predefinido correspondiente a la gravedad del mensaje Pregunta Información Advertencia Crítico |
2 | setText() Establece el texto del mensaje principal que se mostrará |
3 | setInformativeText() Muestra información adicional |
4 | setDetailText() El cuadro de diálogo muestra un botón Detalles. Este texto aparece al hacer clic en él. |
5 | setTitle() Muestra el título personalizado del diálogo |
6 | setStandardButtons() Lista de botones estándar que se mostrarán. Cada botón está asociado con QMessageBox.Ok 0x00000400 QMessageBox.Open 0x00002000 QMessageBox.Save 0x00000800 QMessageBox.Cancel 0x00400000 QMessageBox.Close 0x00200000 QMessageBox.Yes 0x00004000 QMessageBox.No 0x00010000 QMessageBox.Abort 0x00040000 QMessageBox.Reintentar 0x00080000 QMessageBox.Ignore 0x00100000 |
7 | setDefaultButton() Establece el botón como predeterminado. Emite la señal de clic si se presiona Enter |
8 | setEscapeButton() Configura el botón para que se trate como si se hiciera clic si se presiona la tecla Escape |
Ejemplo
En el siguiente ejemplo, haga clic en la señal del botón en la ventana de nivel superior, la función conectada muestra el cuadro de diálogo del cuadro de mensaje.
msg = QMessageBox()
msg.setIcon(QMessageBox.Information)
msg.setText("This is a message box")
msg.setInformativeText("This is additional information")
msg.setWindowTitle("MessageBox demo")
msg.setDetailedText("The details are as follows:")
La función setStandardButton () muestra los botones deseados.
msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
La señal buttonClicked () está conectada a una función de ranura, que identifica el título de la fuente de la señal.
msg.buttonClicked.connect(msgbtn)
El código completo para el ejemplo es el siguiente:
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
def window():
app = QApplication(sys.argv)
w = QWidget()
b = QPushButton(w)
b.setText("Show message!")
b.move(50,50)
b.clicked.connect(showdialog)
w.setWindowTitle("PyQt Dialog demo")
w.show()
sys.exit(app.exec_())
def showdialog():
msg = QMessageBox()
msg.setIcon(QMessageBox.Information)
msg.setText("This is a message box")
msg.setInformativeText("This is additional information")
msg.setWindowTitle("MessageBox demo")
msg.setDetailedText("The details are as follows:")
msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
msg.buttonClicked.connect(msgbtn)
retval = msg.exec_()
print "value of pressed message box button:", retval
def msgbtn(i):
print "Button pressed is:",i.text()
if __name__ == '__main__':
window()
El código anterior produce la siguiente salida: