Inventaires des widgets PyQt
Introduction
Pour rappel et comme évoqué dans le chapitre précédent, un widget désigne en développement PyQt un élément graphique. Une fenêtre graphique est elle-même un widget. Tous les éléments qui vont la composer également. Par exemple et de façon non-exhaustive :
-
les boutons cliquables,
-
les zones de texte,
-
les menus déroulants,
-
les images incluses dans la fenêtre,
-
etc.
Le but du présent chapitre est d’établir un inventaire survolant les principaux widgets utilisables en PyQt. Nous commencerons par détailler le widget QWidget, entraperçu dans le chapitre précédent. Ce widget permet de définir une fenêtre ; il est en quelque sorte le premier des widgets PyQt. Puis nous détaillerons tous les widgets susceptibles d’être positionnés sur ce widget QWidget.
Inventaire des widgets PyQt
1. Widget QWidget
a. Propriétés et méthodes de classes
Le meilleur moyen d’aborder un widget PyQt est de s’intéresser d’emblée à la documentation en ligne relative à l’objet Qt lui-même, dont est issu ce widget PyQt.
Dans le cas de QWidget, la documentation en ligne se trouve à cette adresse : https://doc.qt.io/qt-5/qwidget.html
Après consultation, on peut rapidement partager les remarques suivantes :
-
La classe QWidget hérite de plusieurs dizaines de classes qui participent à sa définition.
-
La classe QWidget possède plusieurs dizaines de propriétés.
-
La classe QWidget possède plusieurs dizaines de méthodes.
Certaines propriétés ne sont pas définies avec des types élémentaires (les types élémentaires sont en particulier le type booléen -bool et le type entier -int).
En effet, on peut voir des types comme QString qui correspond à l’encapsulation d’un type chaîne de caractères (string) en Qt. On cite également le type QSize, qui encapsule les informations relatives à une dimension, c’est-à-dire par exemple le nombre d’éléments d’un tableau.
On rencontre fréquemment en Qt, et donc en PyQt, des encapsulations de types. Ainsi, Qt apparaît comme une couche parfaitement étanche et autonome. On a donc la couche Qt sur laquelle se greffe la couche PyQt, la seule à être utilisée par le code Python lui-même. Ainsi, jamais nous n’utiliserons directement Qt.
Voici ci-dessous la liste exhaustive des propriétés de la classe QWidget. On s’aperçoit qu’elles sont très nombreuses : cette liste est donc proposée ici de manière exceptionnelle. L’usage est en effet de consulter méthodiquement la documentation Qt en ligne pour connaître les différentes possibilités offertes par une classe, y compris dans un contexte de programmation PyQt.
- QWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
- virtual ~QWidget()
- bool acceptDrops() const
- QString accessibleDescription()...