PyQt - QMessageBox

QMessageBoxè una finestra di dialogo modale comunemente utilizzata per visualizzare un messaggio informativo e, facoltativamente, chiedere all'utente di rispondere facendo clic su uno qualsiasi dei pulsanti standard su di essa. Ogni pulsante standard ha una didascalia predefinita, un ruolo e restituisce un numero esadecimale predefinito.

I metodi e le enumerazioni importanti associati alla classe QMessageBox sono forniti nella tabella seguente:

Sr.No. Metodi e descrizione
1

setIcon()

Visualizza l'icona predefinita corrispondente alla gravità del messaggio

Domanda

Informazione

avvertimento

Critico

2

setText()

Imposta il testo del messaggio principale da visualizzare

3

setInformativeText()

Visualizza informazioni aggiuntive

4

setDetailText()

La finestra di dialogo mostra un pulsante Dettagli. Questo testo viene visualizzato facendo clic su di esso

5

setTitle()

Visualizza il titolo personalizzato della finestra di dialogo

6

setStandardButtons()

Elenco dei pulsanti standard da visualizzare. Ogni pulsante è associato a

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.Retry 0x00080000

QMessageBox.Ignore 0x00100000

7

setDefaultButton()

Imposta il pulsante come predefinito. Emette il segnale cliccato se si preme Invio

8

setEscapeButton()

Imposta il pulsante da considerare come cliccato se viene premuto il tasto Esc

Esempio

Nell'esempio seguente, fare clic sul segnale del pulsante nella finestra di livello superiore, la funzione connessa visualizza la finestra di dialogo del messaggio.

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 funzione setStandardButton () visualizza i pulsanti desiderati.

msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)

Il segnale buttonClicked () è collegato a una funzione slot, che identifica la didascalia della sorgente del segnale.

msg.buttonClicked.connect(msgbtn)

Il codice completo per l'esempio è il seguente:

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()

Il codice precedente produce il seguente output: