Bonjour,
J'ai un bout de programme d'une vue graphique qui ne me donne pas les résultats attendu.
J'affiche sur une vue un cercle jaune et un texte :
Tout ce passe bien jusqu'à l'utilisation d'une boite QColorDialog avec le texte .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 self.texte = scene.addText("Mon texte") self.texte.setPos(rectScene.x(),rectScene.y()) self.texte.setDefaultTextColor(Qt.blue) scene.addItem(self.texte) cercJaune = scene.addEllipse(-30,-30,30,30, brush=QBrush(Qt.yellow)) cercJaune.setPos(rectScene.mapToScene(rectScene.rect().center()))
QColorDialog est la boite de dialogue standard qui permet de sélectionner une couleur.
Dans le principe, je sélectionne le cercle ou le texte et je clic sur un bouton qui déclenche l'ouverture de la dite QColorDialog.
Avec le cercle sélectionné, je choisis une nouvelle couleur et le cercle change de couleur après validation .
Avec le texte sélectionné, j'ai le message d'erreur "QGraphicsTextItem has no attribute brush" ; ce qui veux dire que les textes n'ont pas d'attribut brosse.
Hors ils en ont un puisque brosse/brush est la couleur du coeur du texte.
Quelqu'un aurait-il une piste à me donner ? Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 @pyqtSlot() def on_pushButtonChangerCouleur_clicked(self): itemsSelectionnes = self.scene.selectedItems() couleurInit = itemsSelectionnes[0].brush().color() couleur = QColorDialog.getColor(couleurInit,self,'Couleur', QColorDialog.ShowAlphaChannel) if couleur.isValid(): brosse = QBrush(couleur) for item in itemsSelectionnes: item.setBrush(brosse)
Partager