Macro MessageBox/pl

MessageBox

Opis
Pokaż jak dawać informacje użytkownikowi w makrach.

Macro version: 1.0
Last modified: 2011-09-19
FreeCAD version: All
Download: Ikona paska narzędzi
Autor: Gaël Ecorchard
Autor
Gaël Ecorchard
Do pobrania
Ikona paska narzędzi
Odnośniki
Wersja Makrodefinicji
1.0
Data zmian
2011-09-19
Wersja FreeCAD
All
Domyślny skrót
Brak
Zobacz również
-

Opis

Pokaż jak dawać informacje użytkownikowi w makrach.

MessageBox

Skrypt

ToolBar Icon

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


Aby używać znaków diakrytycznych w polu tekstowym z Qt, należy dodać tag # -*- coding: utf-8 -*- oraz przed tekstem do wyświetlenia dodać literę u. Przykład:

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


Aby wyświetlić wiele linii w oknie dialogowym Qt, należy dodać "\n" (w cudzysłowie, działa także w apostrofach) pomiędzy każdą linią.
Również prawidłowe jest użycie "\r\n", co odpowiada znakowi powrotu karetki (CR) i nowej linii (LF). Dodatkowo "\t" to znak tabulacji. Znaki te powinny znajdować się w cudzysłowie (lub apostrofach) jako ciąg znaków. Tagi te umieszcza się bezpośrednio obok wyświetlanego tekstu, np. "\nRayon\t: ". Tag "\" (ukośnik odwrotny) definiuje sekwencję specjalną (escape sequence). Przykład:

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