J'ai 2 classes:
MM_Test qui contient ceci:
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);
 
}
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
 
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);
	}
}
La nouvelle couleur de colorButton n'apparait que lorsque je le survole avec ma souris. Si je clic sut but
Lorsque je clic sur mon bouton (colorButton), j'appelle ce code:
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);
	}
}
et là, aucun soucis.

Où ai-je pêché?