QLabel(self) self.labelTailleCarreVue = QLabel(self) self.vBoxLayout =
QVBoxLayout(self) self.vBoxLayout.addWidget(self.labelNbCarres)
self.vBoxLayout.addWidget(self.labelTailleCarreScene)
self.vBoxLayout.addWidget(self.labelTailleCarreVue)
Comme on le voit, le parent du panneau d'information est la vue, dont on aura besoin
d'appeler certaines méthodes ; pour rendre l'intention explicite, on crée un attribut
appelé vue.
Le panneau aura besoin aussi de connaître la scène, qu'on récupère de l'argument
donné au constructeur.
On définit l'apparence du QFrame pour avoir un cadre noir via le style
QFrame.Box.
Pour définir la couleur de fond du panneau et la couleur du texte, la méthode
recommandée est d'utiliser la syntaxe des feuilles de style de Qt (style sheets), qui
est très proche de celle des CSS. Ce style est hérité par les trois QLabel enfants. On
peut omettre cette instruction, mais, alors, le fond du panneau est transparent, ce qui
rend l'information moins lisible, sachant que les carrés colorés de la vue seront en
arrière-fond.
Ce qui suit utilise les techniques présentées au chapitre Créer une première
application pour créer les trois QLabel et les aligner verticalement sur le panneau.
Pour afficher les informations nécessaires sur le panneau, on a besoin à chaque instant
de répondre à deux questions : combien y a-t-il de carrés sur la scène ? et quel est le
carré actuellement sous le pointeur souris ? Il existe plusieurs techniques pour y
répondre. L'une d'elle, simple et fiable, consiste à définir deux attributs de classe à
CarreMosaiQ (donc communs à toutes les instances) et à laisser les méthodes de cette
classe s'occuper de la gestion de ces attributs.
…
class CarreMosaiQ(QGraphicsRectItem):
…
nbInstances = 0
254
QVBoxLayout(self) self.vBoxLayout.addWidget(self.labelNbCarres)
self.vBoxLayout.addWidget(self.labelTailleCarreScene)
self.vBoxLayout.addWidget(self.labelTailleCarreVue)
Comme on le voit, le parent du panneau d'information est la vue, dont on aura besoin
d'appeler certaines méthodes ; pour rendre l'intention explicite, on crée un attribut
appelé vue.
Le panneau aura besoin aussi de connaître la scène, qu'on récupère de l'argument
donné au constructeur.
On définit l'apparence du QFrame pour avoir un cadre noir via le style
QFrame.Box.
Pour définir la couleur de fond du panneau et la couleur du texte, la méthode
recommandée est d'utiliser la syntaxe des feuilles de style de Qt (style sheets), qui
est très proche de celle des CSS. Ce style est hérité par les trois QLabel enfants. On
peut omettre cette instruction, mais, alors, le fond du panneau est transparent, ce qui
rend l'information moins lisible, sachant que les carrés colorés de la vue seront en
arrière-fond.
Ce qui suit utilise les techniques présentées au chapitre Créer une première
application pour créer les trois QLabel et les aligner verticalement sur le panneau.
Pour afficher les informations nécessaires sur le panneau, on a besoin à chaque instant
de répondre à deux questions : combien y a-t-il de carrés sur la scène ? et quel est le
carré actuellement sous le pointeur souris ? Il existe plusieurs techniques pour y
répondre. L'une d'elle, simple et fiable, consiste à définir deux attributs de classe à
CarreMosaiQ (donc communs à toutes les instances) et à laisser les méthodes de cette
classe s'occuper de la gestion de ces attributs.
…
class CarreMosaiQ(QGraphicsRectItem):
…
nbInstances = 0
254
