Macro MessageBox

From FreeCAD Documentation
Jump to navigation Jump to search
This page is a translated version of the page Macro MessageBox and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎čeština

Macro MessageBox.png MessageBox

Description
Montre comment donner des informations à l'utilisateur dans les macros

Version macro : 1.0
Date dernière modification : 2011-09-19
Version FreeCAD : Toutes
Téléchargement : Icone
Auteur
Gaël Ecorchard
Téléchargement
Icone
Liens
Version Macro
1.0
Dernière modification
2011-09-19
Version(s) FreeCAD
Toutes
Raccourci clavier
None
Voir aussi
None


Description

Cette macro permet d'afficher un signal, ou un texte dans une boîte de dialogue, avec un icône distinctif.

MessageBox

MessageBox


Script

ToolBar Icon Macro MessageBox.png

Macro_MessageBox.FCMacro

#! /usr/bin/env python
# -*- coding: utf-8 -*-
 
"""Show how to give information to the user in macros
"""
from PySide import QtCore, QtGui
 
def errorDialog(msg):
    # Create a simple dialog QMessageBox
    # The first argument indicates the icon used: one of QtGui.QMessageBox.{NoIcon, Information, Warning, Critical, Question} 
    diag = QtGui.QMessageBox(QtGui.QMessageBox.Warning, 'Error in macro MessageBox', msg)
    diag.setWindowModality(QtCore.Qt.ApplicationModal)
    diag.exec_()
 
msg = 'Example of warning message'
errorDialog(msg)
raise(Exception(msg))


Pour pouvoir utiliser les caractères accentués dans le champ texte de Qt, grâce à la balise # -*- coding: utf-8 -*- il faut ajouter un " u " devant le message à afficher.

Exemple :

diag = QtGui.QMessageBox(QtGui.QMessageBox.Warning, u'Trop d'éléments désignés', msg)
    ...
    ...
msg = u'Élément sélectionnés affichés'


Pour afficher plusieurs lignes dans une boîte de dialogue Qt, il faut ajouter "\n" (entre guillemets, valable aussi, entre apostrophes) entre chaque lignes.

Valable aussi "\r\n" qui correspondent à CR retour chariot, et LF fin de ligne, valable aussi "\t" qui est une tabulation, les caractères doivent se trouver entre guillemets (ou apostrophes) comme une chaîne de caractère, les balises peuvent se trouver à côté du texte à afficher "\nRayon\t : ", la balise " \ " (slash inversé) délimite la commande.

Exemple :

diag = QtGui.QMessageBox(QtGui.QMessageBox.Information,u"Coordonnées",u"Coordonnée X : "+str(x)+"\r\n"+u"Coordonnée Y : "+str(y)+"\n"+u"Coordonnée Z :<br>
 "+str(z)+"\nRayon\t     : "+str(r))