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
|
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: