PySide usage snippets
Revision as of 12:20, 29 October 2024 by LabRPS (talk | contribs) (Created page with "== Introduction == These are snippets of code that are useful when creating interfaces with PySide. ==Some useful commands== {{Code|code= # 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\LabRPS0.1.0\icone01.png" # he name of the ic...")
Introduction
These are snippets of code that are useful when creating interfaces with PySide.
Some useful commands
# 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\LabRPS0.1.0\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 = LabRPS.ConfigGet("UserAppData") # gives the user path path = LabRPS.ConfigGet("AppHomePath") # gives the installation path of LabRPS # 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\LabRPS0.1.0\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))
Encoding problems
UTF8
By using the characters with accents, where you get the error:
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-2: invalid data
Several solutions are possible.
# 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')
or with the procedure
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")
or with the procedure
def iso8859(encoder): return unicode(encoder).encode('iso-8859-1')
or
iso8859(unichr(176))
or
unichr(ord(176))
or
uniteSs = "mm"+iso8859(unichr(178)) print(unicode(uniteSs, 'iso8859'))
Power user documentation
- LabRPS scripting: Python, Introduction to Python, Python scripting tutorial, LabRPS Scripting Basics
- Modules: Units, Quantity
- Workbenches: Gui Commands, Commands
- Parametric objects: Scripted objects, Viewproviders
- Graphical interface: Interface creation, Interface creation completely in Python, PySide, PySide examples beginner, intermediate, advanced
- Macros: Macros, How to install macros
- Other: Expressions
- Hubs: User hub, Power users hub, Developer hub