2016-04-30 4 views
0

Verwandte Qusetions erhalten:Wie die Hintergrundfarbe des QT-Toolbutton/Drücks mit C++

Es gibt mindestens drei Möglichkeiten, das Problem zu lösen:

// 1st 
QColor color = ui->toolButton->palette().color(QWidget::backgroundRole()); 
// 2nd 
QColor color = ui->toolButton->palette().background().color(); 
// 3rd 
QColor color = colorSetting = ui->toolButton->palette().color(QPalette::Window); 

Update: sorry ich habe einige Fehler gemacht, die beiden folgenden Möglichkeiten, gut zu funktionieren.


Raw qusetion:

ich versucht habe

QColor color = ui->toolButton->palette().background().color(); 

und

QColor color = colorSetting = ui->toolButton->palette().color(QPalette::Window); 

haben beide QColor(ARGB 1, 0.941176, 0.941176, 0.941176), nicht die richtige Farbe ich will.

Die Hintergrundfarbe und bearbeite mainwindow.ui, ändern Sheet von Toolbutton zu background-color: rgb(255, 170, 255);

image of my toolButton

und für pyqt gesetzt ist, siehe hier How to get the background color of a button or label (QPushButton, QLabel) in PyQt

Antwort

0

Ihre verknüpfte Frage nach der Farbrolle ist falsch verwendet durch Knöpfe. Sie suchen QPalette::Button als Ihre ColorRole.

QColor color = ui->toolbutton->palette()->color(QPalette::Button); 

werden, dass diese Farbe nicht den Hintergrund für die Werkzeugtaste gemalt darstellen. Einige Stile verwenden Farbverläufe und QPalette speichert Pinsel, keine Farben. Rufen Sie QPalette::button() auf, um den Schaltflächenhintergrundpinsel abzurufen.

Ich vermute, Sie beabsichtigen, die Hintergrundfarbe zu ändern. Sie können die Nummer setBrush() aufrufen:

//Create a solid brush of the desired color 
QBrush brush(someColor); 
//Get a copy of the current palette to modify 
QPalette pal = ui->toolbutton->palette(); 
//Set all of the color roles but Disabled to our desired color 
pal.setBrush(QPalette::Normal, QPalette::Button, brush); 
pal.setBrush(QPalette::Inactive, QPalette::Button, brush); 
//And finally set the new palette 
ui->toolbutton->setPalette(pal); 
Verwandte Themen