PySide usage snippets/fr: Difference between revisions
(Created page with "==Quelques commandes utiles==") |
(Updating to match new version of source page) |
||
(5 intermediate revisions by one other user not shown) | |||
Line 4: | Line 4: | ||
Ce sont des extraits de code utiles lors de [[Dialog_creation/fr|création d'interfaces]] avec [[PySide/fr|PySide]]. |
Ce sont des extraits de code utiles lors de [[Dialog_creation/fr|création d'interfaces]] avec [[PySide/fr|PySide]]. |
||
Pour plus d'informations sur la création d'interfaces complètes, voir [[Interface_creation_with_UI_files/fr|Création d'interface avec des fichiers UI]]. |
|||
==Quelques commandes utiles== |
==Quelques commandes utiles== |
||
Line 67: | Line 65: | ||
}} |
}} |
||
== |
== Problèmes d'encodage == |
||
=== UTF8 === |
=== UTF8 === |
||
En utilisant les caractères accentués, dans le cas ou vous obtenez les erreurs suivantes: |
|||
By using the characters with accents, where you get the error: |
|||
{{Code|code= |
{{Code|code= |
||
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-2: invalid data |
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-2: invalid data |
||
}} |
}} |
||
Plusieurs solutions sont possibles. |
|||
{{Code|code= |
{{Code|code= |
||
# conversion from a lineEdit |
# conversion from a lineEdit |
||
Line 83: | Line 81: | ||
}} |
}} |
||
ou avec la procédure |
|||
or with the procedure |
|||
{{Code|code= |
{{Code|code= |
||
def utf8(unio): |
def utf8(unio): |
||
Line 101: | Line 99: | ||
}} |
}} |
||
ou avec la procédure |
|||
or with the procedure |
|||
{{Code|code= |
{{Code|code= |
||
def iso8859(encoder): |
def iso8859(encoder): |
||
Line 107: | Line 105: | ||
}} |
}} |
||
ou |
|||
or |
|||
{{Code|code= |
{{Code|code= |
||
iso8859(unichr(176)) |
iso8859(unichr(176)) |
||
}} |
}} |
||
ou |
|||
or |
|||
{{Code|code= |
{{Code|code= |
||
unichr(ord(176)) |
unichr(ord(176)) |
||
}} |
}} |
||
ou |
|||
or |
|||
{{Code|code= |
{{Code|code= |
||
uniteSs = "mm"+iso8859(unichr(178)) |
uniteSs = "mm"+iso8859(unichr(178)) |
Latest revision as of 15:45, 6 November 2021
Introduction
Ce sont des extraits de code utiles lors de création d'interfaces avec PySide.
Quelques commandes utiles
# Here the code to display the icon on the '''pushButton''',
# change the name to another button, ('''radioButton, checkBox''') as well as the path to the icon,
# Displays an icon on the button PushButton
# self.image_01 = "C:\Program Files\FreeCAD0.13\icone01.png" # he name of the icon
self.image_01 = path+"icone01.png" # the name of the icon
icon01 = QtGui.QIcon()
icon01.addPixmap(QtGui.QPixmap(self.image_01),QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.pushButton.setIcon(icon01)
self.pushButton.setLayoutDirection(QtCore.Qt.RightToLeft) # This command reverses the direction of the button
# path = FreeCAD.ConfigGet("UserAppData") # gives the user path
path = FreeCAD.ConfigGet("AppHomePath") # gives the installation path of FreeCAD
# This command reverses the horizontal button, right to left
self.pushButton.setLayoutDirection(QtCore.Qt.RightToLeft) # This command reverses the horizontal button
# Displays an info button
self.pushButton.setToolTip(_translate("MainWindow", "Quitter la fonction", None)) # Displays an info button
# This function gives a color button
self.pushButton.setStyleSheet("background-color: red") # This function gives a color button
# This function gives a color to the text of the button
self.pushButton.setStyleSheet("color : #ff0000") # This function gives a color to the text of the button
# combinaison des deux, bouton et texte
self.pushButton.setStyleSheet("color : #ff0000; background-color : #0000ff;" ) # combination of the two, button, and text
# replace the icon in the main window
MainWindow.setWindowIcon(QtGui.QIcon('C:\Program Files\FreeCAD0.13\View-C3P.png'))
# connects a lineEdit on execute
self.lineEdit.returnPressed.connect(self.execute) # connects a lineEdit on "def execute" after validation on enter
# self.lineEdit.textChanged.connect(self.execute) # connects a lineEdit on "def execute" with each keystroke on the keyboard
# display text in a lineEdit
self.lineEdit.setText(str(val_X)) # Displays the value in the lineEdit (convert to string)
# extract the string contained in a lineEdit
val_X = self.lineEdit.text() # extract the (string) string contained in lineEdit
val_X = float(val_X0) # converted the string to an floating
val_X = int(val_X0) # convert the string to an integer
# This code allows you to change the font and its attributes
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(10)
font.setWeight(10)
font.setBold(True) # same result with tags "<b>your text</b>" (in quotes)
self.label_6.setFont(font)
self.label_6.setObjectName("label_6")
self.label_6.setStyleSheet("color : #ff0000") # This function gives a color to the text
self.label_6.setText(_translate("MainWindow", "Select a view", None))
Problèmes d'encodage
UTF8
En utilisant les caractères accentués, dans le cas ou vous obtenez les erreurs suivantes:
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-2: invalid data
Plusieurs solutions sont possibles.
# conversion from a lineEdit
App.activeDocument().CopyRight.Text = str(unicode(self.lineEdit_20.text() , 'ISO-8859-1').encode('UTF-8'))
DESIGNED_BY = unicode(self.lineEdit_01.text(), 'ISO-8859-1').encode('UTF-8')
ou avec la procédure
def utf8(unio):
return unicode(unio).encode('UTF8')
ASCII
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 9: ordinal not in range(128)
# conversion
a = u"Nom de l'élément : "
f.write('''a.encode('iso-8859-1')'''+str(element_)+"\n")
ou avec la procédure
def iso8859(encoder):
return unicode(encoder).encode('iso-8859-1')
ou
iso8859(unichr(176))
ou
unichr(ord(176))
ou
uniteSs = "mm"+iso8859(unichr(178))
print(unicode(uniteSs, 'iso8859'))
Hub utilisateurs expérimentés
- Scripts FreeCAD : Python, Introduction à Python, Tutoriel sur les scripts Python, Débuter avec les scripts
- Modules : Modules intégrés, Unités, Quantity
- Ateliers : Création d'atelier, Commands Gui, Les commandes, Installer des ateliers supplémentaires
- Maillages et objets Parts : Scripts Mesh, Script de données topologiques, Conversion objet Mesh en Part, PythonOCC
- Objets paramétriques : Objets créés par script, Viewproviders (Icône personnalisée dans l'arborescence)
- Scénographie : Graphe de scène Coin (Inventor), Pivy
- Interface graphique : Création d'interface, Création d'une boite de dialogue (1, 2, 3, 4, 5), PySide, Exemples PySide débutant, intermédiaire, expérimenté
- Macros : Macros, Comment installer des macros
- Intégration : Intégrer FreeCAD, Intégration de FreeCADGui
- Autre : Expressions, Extraits de codes, Fonction - tracer une ligne, Bibliothèque mathématique vectorielle de FreeCAD (déprécié)