Comment utiliser pyqt qmessagebox

Comment utiliser pyqt qmessagebox
La boîte de message est utilisée dans l'application GUI pour fournir les informations nécessaires à l'utilisateur ou pour demander à l'utilisateur de prendre des mesures en fonction du message. Quatre types de boîtes de messages peuvent être créées pour n'importe quelle application GUI, y compris la boîte de message d'information, la boîte de message d'avertissement, la boîte de message critique et la boîte de message de question. Le QMessageBox La classe de PYQT est utilisée dans Python pour créer une boîte de message. Ce tutoriel vous montre comment utiliser la classe QMessageBox pour créer diverses boîtes de message.

Méthodes nécessaires

La classe QMessageBox propose de nombreuses méthodes pour créer différents types de boîtes de messages. Certaines des méthodes les plus couramment utilisées de la classe QMessageBox sont décrites ci-dessous:

Noms de méthode But
colonie () Utilisé pour afficher le titre personnalisé.
Définir le texte() Utilisé pour définir le texte du message principal.
setDetailText () Utilisé pour afficher une fenêtre avec un bouton de détails; Le texte du message apparaîtra après que l'utilisateur clique sur le bouton.
setInformativeText Utilisé pour afficher le message supplémentaire.
seticon () Utilisé pour définir une icône dans la zone de message en fonction du type de message.
SetWindowTitle () Utilisé pour définir le titre de la fenêtre de message.
setDefaultButton () Utilisé pour définir le bouton dans la zone de message par défaut; Le bouton relâchera un signal cliqué lorsque le Entrer La touche est enfoncée.
SETESCACEBUTTON () Utilisé pour définir n'importe quel bouton pour fonctionner comme une clé d'échappement; Le bouton relâchera un signal cliqué lorsque le S'échapper La touche est enfoncée.
setStandardButtons () Divers boutons standard peuvent être utilisés dans la zone de message en fonction du type de message, tel que OK, oui, non, annuler, fermer, etc.

Utilisation de QMessagebox

Les sections suivantes de ce tutoriel fournissent des exemples qui vous montrent comment créer différentes boîtes de messages à l'aide de la classe QMessageBox.

Exemple 1: Créez une boîte de message d'information

Le script suivant créera une boîte de message d'information simple à l'aide de la classe QMessageBox. Ce type de boîte de messages fournit le message d'information pour l'utilisateur uniquement. D'ACCORD est le bouton par défaut dans la zone de message. Ici, QMessageBox.Information est utilisé dans le seticon () Méthode pour afficher l'icône d'information dans la zone de message.

# Importer les modules nécessaires
importer sys
de pyqt5.Qtwidgets import Qapplication, qmainwindow, qMessagebox
# Définissez la classe pour afficher un message d'information
Class MessageWindow (qmainwindow):
def __init __ (soi):
# Appelez le constructeur parent
super().__init __ ()
# Créez l'objet MessageBox
soi.msg = qMessageBox ()
# Définissez l'icône d'information
soi.msg.seticon (qMessagebox.Information)
# Définissez le message principal
soi.msg.setText ("La tâche est terminée avec succès.")
# Définissez le titre de la fenêtre
soi.msg.setWindowTitle ("message d'information")
# Afficher la zone de message
soi.msg.montrer()
# Créer un objet d'application et exécuter l'application
app = qapplication (sys.argv)
Win = messagewindow ()
appliquer.exec ()

La zone de message suivante apparaîtra après l'exécution du script ci-dessus.

Exemple 2: Créez une boîte de message d'avertissement

Le script suivant créera la boîte de message d'avertissement à l'aide de la classe QMessageBox. Ce type de boîte de message fournit le message d'avertissement pour l'utilisateur. Le avertissement est utilisé dans le seticon () Méthode pour afficher l'icône d'avertissement dans la zone de message. Le D'ACCORD et Annuler Des boutons sont ajoutés à la zone de message setStandardButtons () méthode. Une méthode personnalisée appelée msgbutton () est défini dans la classe pour tracer le bouton dans la zone de message qui a été cliquée par l'utilisateur. Si l'utilisateur clique sur le D'ACCORD bouton, puis le texte, 'Le bouton OK est appuyé,«va imprimer; Sinon, le 'Le bouton Annuler est appuyé'Le texte imprimera.

# Importer les modules nécessaires
importer sys
de pyqt5.Qtwidgets import Qapplication, qmainwindow, qMessagebox
# Définissez la classe pour afficher un message d'information
Class MessageWindow (qmainwindow):
def __init __ (soi):
# Appelez le constructeur parent
super().__init __ ()
# Créez l'objet MessageBox
soi.msgwarning = qMessageBox ()
# Définissez l'icône d'avertissement
soi.warning msg.seticon (qMessagebox.Avertissement)
# Définissez le message principal
soi.warning msg.Définir le texte("Nom la variable n'est pas définie.")
# Définissez deux boutons pour la zone de message
soi.warning msg.setStandardButtons (QMessageBox.OK | QMessageBox.Annuler)
# Appelez la méthode personnalisée sur le bouton cliqué
soi.warning msg.clignotant.se connecter (soi.msgbutton)
# Définissez le titre de la fenêtre
soi.warning msg.setWindowTitle ("message d'avertissement")
# Afficher la zone de message
soi.warning msg.montrer()
# Définir la fonction pour les boutons
def msgbutton (self, i):
si je.text () == '& ok':
Imprimer ("Le bouton OK est appuyé.")
autre:
Imprimer ("Le bouton Annuler est appuyé sur.")
# Créer un objet d'application et exécuter l'application
app = qapplication (sys.argv)
Win = messagewindow ()
appliquer.exec_ ()

La zone de message suivante apparaîtra après l'exécution du script ci-dessus.

Si l'utilisateur clique sur le D'ACCORD bouton, la sortie suivante apparaîtra.

Exemple 3: Créer un Question Avertissement Message

Le script suivant créera la zone de message de question à l'aide de la classe QMessageBox. Ce type de boîte de messages fournit le message de question à l'utilisateur pour prendre l'action particulière en fonction de la décision de l'utilisateur. Ici, QMessageBox.Question est utilisé dans le seticon () Méthode pour afficher l'icône de question dans la zone de message. Le Oui et Non Des boutons sont ajoutés à la zone de message setStandardButtons () méthode. Le Non Le bouton est défini comme le bouton par défaut à l'aide de la méthode setDefaultButton (). Une méthode personnalisée appelée msgbutton () est défini dans la classe pour tracer le bouton dans la zone de message qui a été cliquée par l'utilisateur.

# Importer les modules nécessaires
importer sys
de pyqt5.Qtwidgets import Qapplication, qmainwindow, qMessagebox
# Définissez la classe pour afficher un message d'information
Class MessageWindow (qmainwindow):
def __init __ (soi):
# Appelez le constructeur parent
super().__init __ ()
# Créez l'objet MessageBox
soi.msgQuertion = qMessageBox ()
# Définissez l'icône d'avertissement
soi.msgquestion.seticon (qMessagebox.Question)
# Définissez le message principal
soi.msgquestion.setText ("Voulez-vous continuer?")
# Définissez deux boutons pour la zone de message
soi.msgquestion.setStandardButtons (QMessageBox.Oui | QMessageBox.Non)
soi.msgquestion.setDefaultButton (QMessagebox.Non)
# Appelez la méthode personnalisée sur le bouton cliqué
soi.msgquestion.clignotant.se connecter (soi.msgbutton)
# Définissez le titre de la fenêtre
soi.msgquestion.setWindowTitle ("poser une question à l'utilisateur")
# Afficher la zone de message
soi.msgquestion.montrer()
# Définir la fonction pour les boutons
def msgbutton (self, i):
si je.text () == '& oui':
imprimer ("la tâche continue ...")
autre:
Imprimer ("Vous avez annulé la tâche.")
# Créer un objet d'application et exécuter l'application
app = qapplication (sys.argv)
Win = messagewindow ()
appliquer.exec_ ()

La zone de message suivante apparaîtra après l'exécution du script ci-dessus.

Si l'utilisateur clique sur le Entrer clé sans sélectionner aucun boutons, puis le Non Le bouton sera activé par défaut et la sortie suivante apparaîtra:

Conclusion

Dans ce tutoriel, trois types différents de boîtes de messages ont été créées à l'aide de la classe QMessageBox. J'espère que ce tutoriel vous a aidé à mieux comprendre l'utilisation de cette classe. Vous devriez maintenant pouvoir créer une boîte de message pour l'application PYQT.