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 -