J'ai 2 classes:
MM_Test qui contient ceci:
MM_Widget qui dérive de QWidget
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 MM_Test::MM_Test(QWidget *parent) : QDialog(parent) { mmw = new MM_Widget(this); but = new QPushButton(this); this->resize(300, 50); connect(but, SIGNAL(clicked()), this, SLOT(setColor())); } void MM_Test::setColor() { QColor *col = new QColor(255, 0, 0, 0); mmw->setColor(col); }
La nouvelle couleur de colorButton n'apparait que lorsque je le survole avec ma souris. Si je clic sut but
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void MM_Widget::setColor(QColor *col) { if(col->isValid()) { *mm_color = *col; QPalette pal = colorButton->palette(); pal.setColor(QPalette::Button, *mm_color); colorButton->setPalette(pal); } }
Lorsque je clic sur mon bouton (colorButton), j'appelle ce code:
et là, aucun soucis.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void MM_Widget::updateColor() { QColor col = QColorDialog::getColor(*mm_color, this); if(col.isValid()) { *mm_color = col; QPalette pal = colorButton->palette(); pal.setColor(QPalette::Button, *mm_color); colorButton->setPalette(pal); } }
Où ai-je pêché?
Partager