PySide Beginner Examples/fr

Introduction
Le but de cette page est de couvrir les exemples de niveau débutant du gestionnaire de l'interface graphique utilisateur PySide (voir ensuite les pages Medium PySide Examples et Advanced PySide Examples).

Les nouveaux arrivants à la programmation GUI peuvent trébucher sur le mot "widget". Sa signification en dehors de l'informatique est généralement donnée comme

"'un petit gadget ou dispositif mécanique, en particulier celui dont le nom est inconnu ou non spécifié'"

Pour les gestionnaires d'interfaces graphique tel que PySide, le terme «widget» est le plus souvent utilisé pour désigner les éléments visibles de l'interface graphique - fenêtres, boîtes de dialogue et fonctions d'entrée / sortie. Tous les éléments visibles de PySide sont appelés widgets, et, pour ceux qui sont intéressés, ils descendent tous d'une classe parente commune, QWidget. En plus des éléments visibles, PySide propose également des widgets pour la mise en réseau, XML, multimédia et l'intégration de bases de données.

Un widget qui n'est pas intégré dans un widget parent est appelé une fenêtre et généralement les fenêtres ont un cadre et une barre de titre. Les types de fenêtres les plus courants sont la "fenêtre principale" (de la classe QMainWindow) et les différentes sous-classes de la boîte de dialogue (de la classe QDialog). Une grande différence est que QDialog est modal (c'est-à-dire que l'utilisateur ne peut rien faire en dehors de la fenêtre Dialog alors qu'il est ouvert) et que QMainWindow est non modal, ce qui permet à l'utilisateur d'interagir avec d'autres fenêtres en parallèle.

Ce guide est une liste de raccourcis pour faire rapidement faire fonctionner un programme PySide sous FreeCAD, il n'est pas destiné à enseigner Python ou PySide. Voici une liste de certains sites qui font cela : /!\ attention /!\ sites en anglais
 * PySide tutorial at zetcode.com
 * PySide/PyQt Tutorial at PythonCentral.io
 * PySide 1.0.7 Reference at Srinikom.github.io (note this is a reference, not a tutorial)

Déclaration d'importation
PySide n'est pas chargé avec Python par défaut, il doit être importé avant de l'utiliser. La commande suivante:

causes the 2 parts of PySide to be loaded - QtGui holds classes for managing the Graphic User Interface while QtCore contains classes that do not directly relate to management of the GUI (e.g. timers and geometry). Although it is possible to only import the one that is needed, generally they are both needed and both imported.

Note : the 'import' statement is not repeated in each code snippet below, it is assumed that it is already in the Python file.

Exemple simple
L'interaction la plus simple avec PySide est de présenter à l'utilisateur un message qu'il ne peut que accepter :



Oui ou Non
L'interaction simple suivante consiste à demander de répondre oui ou non : QtGui.QMessageBox.No, QtGui.QMessageBox.No) if reply == QtGui.QMessageBox.Yes:       # this is where the code relevant to a 'Yes' answer goes         pass if reply == QtGui.QMessageBox.No:         # this is where the code relevant to a 'No' answer goes         pass



Zone de texte
L'extrait de code suivant demande à l'utilisateur un texte - notez qu'il peut s'agir de n'importe quelle touche du clavier :



Souvenez-vous que même si l'utilisateur ne saisit que des chiffres, "1234" par exemple, ce sont des chaînes de caractères et doivent être converties en représentation numérique avec l'un des éléments suivants:

Plus de 2 boutons
L'exemple final du niveau débutant est de savoir comment construire une boîte de dialogue avec un nombre arbitraire de boutons. Cet exemple est trop complexe par programme pour pouvoir être invoqué à partir d'une seule instruction Python. Par conséquent, il devrait être à la page suivante, qui est un exemple de PySide Intermédiaire. Mais d'un autre côté, c'est souvent tout ce qui est nécessaire sans entrer dans des définitions d'interface graphique complexes, donc le code est placé à la fin de cette page PySide Débutant plutôt que le début de la page PySide Intermédiaire suivante.

Each piece of code under test would be in a function with the name 'routine1', 'routine2', etc. As many buttons as you can fit on the screen may be used. Follow the patterns in the code sample and add extra buttons as needed - the Dialog box will set it's width accordingly, up to the width of the screen.



Il y a cette ligne de code :

qui fait que les boutons sont dans une ligne horizontale. Pour les mettre dans une ligne verticale, changez la ligne de code en remplaçant Horizontal en Vertical :