PyQt - QMessageBox
QMessageBoxest une boîte de dialogue modale couramment utilisée pour afficher un message d'information et demander éventuellement à l'utilisateur de répondre en cliquant sur l'un des boutons standard. Chaque bouton standard a une légende prédéfinie, un rôle et renvoie un nombre hexadécimal prédéfini.
Les méthodes et énumérations importantes associées à la classe QMessageBox sont données dans le tableau suivant -
Sr.No. | Méthodes et description |
---|---|
1 | setIcon() Affiche l'icône prédéfinie correspondant à la gravité du message Question Information Attention Critique |
2 | setText() Définit le texte du message principal à afficher |
3 | setInformativeText() Affiche des informations supplémentaires |
4 | setDetailText() La boîte de dialogue affiche un bouton Détails. Ce texte apparaît en cliquant dessus |
5 | setTitle() Affiche le titre personnalisé de la boîte de dialogue |
6 | setStandardButtons() Liste des boutons standard à afficher. Chaque bouton est associé à QMessageBox.Ok 0x00000400 QMessageBox.Open 0x00002000 QMessageBox.Save 0x00000800 QMessageBox.Cancel 0x00400000 QMessageBox.Close 0x00200000 QMessageBox.Oui 0x00004000 QMessageBox.No 0x00010000 QMessageBox.Abort 0x00040000 QMessageBox.Retry 0x00080000 QMessageBox.Ignore 0x00100000 |
sept | setDefaultButton() Définit le bouton par défaut. Il émet le signal cliqué si vous appuyez sur Entrée |
8 | setEscapeButton() Définit le bouton à traiter comme cliqué si la touche d'échappement est enfoncée |
Exemple
Dans l'exemple suivant, cliquez sur le signal du bouton dans la fenêtre de niveau supérieur, la fonction connectée affiche la boîte de dialogue de la boîte de message.
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 fonction setStandardButton () affiche les boutons souhaités.
msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
Le signal buttonClicked () est connecté à une fonction de slot, qui identifie la légende de la source du signal.
msg.buttonClicked.connect(msgbtn)
Le code complet de l'exemple est le suivant -
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()
Le code ci-dessus produit la sortie suivante -