Leo
Leo

Reputation: 1139

QToolButton and color

I'm trying to make a simple design to select a color and I'm using a QToolButton to open a QColorDialog. My problem is that I would like the QToolButton to be of the selected color but I've only suceeded to set the background color, which is not what I want.

Here is a picture:

enter image description here

My code:

QColor color = QColorDialog::getColor(m_couleur);
if (color.isValid()) m_couleur=color;
m_labelCouleur->setPalette(QPalette(m_couleur));
m_labelCouleur->setAutoFillBackground(true);
m_buttonCouleur->setPalette(QPalette(m_couleur));
m_buttonCouleur->setAutoFillBackground(true);

Basically I would like the QToolButton to look something like this:

enter image description here

edit: Can anyone explain to me why the website won't let me add "Hi everybody" at the beginning?

Upvotes: 1

Views: 7816

Answers (3)

Anthony
Anthony

Reputation: 8788

I've done exactly that by using a QPushButton and setting its style sheet to the result from the color picker. I guess a tool button should probably be the same.

button->setStyleSheet(QString("background-color: %1; "
                              "border: 1px; "
                              "border-color: black; "
                              "border-style: outset;").arg(color.name()));

Upvotes: 2

Kamil Klimek
Kamil Klimek

Reputation: 13130

QColor color = QColorDialog::getColor(m_couleur);
QPixmap px(20, 20);
px.fill(color);
m_buttonCouleur->setIcon(px);

No CSS involved in this case is (for me ofcourse) big pro

Upvotes: 7

pnezis
pnezis

Reputation: 12321

Use the setStylesheet function in order to change the background color of your button

m_buttonCouleur->setStyleSheet(QString("QToolButton{ background: %1; }").arg(m_couleur.name()));

Upvotes: 2

Related Questions