Ces relations sont importantes pour plusieurs raisons, notamment pour le
positionnement des composants. Ainsi, les coordonnées de n'importe quel composant
sont relatives au parent de ce composant, avec (0,0) correspondant au coin supérieur
gauche du parent. Par ailleurs, chaque instance a été assignée à un attribut de la fenêtre
principale, de sorte que toute méthode puisse y accéder, en écrivant par exemple
self.lineEditTitre pour l'élément ligne de saisie (QLineEdit). Il est important de
noter toutefois que l'assignation à des attributs de MainWindowBiblio (comme
self.lineEditTitre = ...) ne remet pas en cause la relation de parenté évoquée plus
haut : le widget parent de l'objet QLineEdit est et reste self.centralWidget (instance
de QWidget) et pas self (instance de MainWindowBiblio) ; les attributs tels que
self.lineEditTitre servent essentiellement à pouvoir référencer simplement chaque
composant, quel que soit le niveau qu'il occupe dans la hiérarchie.
Notons au passage un aspect qu'on va se dépêcher d'oublier dans les sections qui
suivent, car laborieux et archaïque : les instructions move(x,y), qui sont destinées à
positionner les divers composants. Sauf avis contraire, PyQt place tous les éléments
créés aux coordonnées relatives (0,0), ce qui correspond dans notre cas au coin
supérieur gauche du widget central : les éléments s'empilent les uns sur les autres de
sorte qu'on ne voit finalement que le dernier créé. Le positionnement via move(x,y) est
une solution rapide pour se tirer d'affaire. Cette solution n'est toutefois pas
recommandée ; nous verrons bientôt une technique beaucoup plus puissante.
70
Précédent

- 71/494

Suivant