2012-06-11 58 views
0

我想做一個簡單的設計來選擇一種顏色,我使用QToolButton來打開QColorDialog。 我的問題是,我想QToolButton是所選的顏色,但我只能設置背景顏色,這不是我想要的。QToolButton和顏色

這裏有一個畫面:

enter image description here

我的代碼:

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); 

基本上我希望QToolButton看起來是這樣的:

enter image description here

編輯:可以任何e向我解釋爲什麼網站不會讓我在開頭添加「大家好」?

+0

是否需要一個QToolButton?我已經完成了你想要使用QPushButton。 – Anthony

+0

@Anthony不,它不需要成爲QToolButton。只要我能給它維度,我希望它很好。您使用了QPushButton的哪些屬性? – Leo

+2

@Leo:雖然禮貌是被鼓勵的,但我認爲像你所描述的禮貌被認爲是虛弱的,因此沒有被鼓勵。將StackOverflow看作是一個高質量問題和答案的龐大數據庫,而不是老年木工的支持團隊。 – 2012-06-11 15:43:03

回答

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

無CSS本案是(對我ofcourse)大親

+0

我不認爲爲每種顏色創建一個圖標會很容易。我選擇了你的解決方案,因爲它看起來更好:[link](http://imgur.com/wLJVv)。 webclectic的解決方案如下所示:[link](http://i.imgur.com/QQgSB.png) – Leo

2

使用,以便在setStylesheet功能更改按鈕的背景顏色

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

我用QPushButton和樣式表設置爲從顏色選擇器的結果做了這一點。我想工具按鈕應該可能是一樣的。

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

我這樣做了:'m_buttonCouleur-> setStyleSheet(「background-color:%1; border:1px; border-color:black; border-style:outset;」)。arg(m_couleur.name());'但是我有錯誤:'無效'使用'void'。任何想法我做錯了什麼? – Leo

+0

@Leo,我的錯。它應該是一個QString爲了使用'arg'功能。更新。 – Anthony

+0

感謝它現在的作品,但我已經選擇了「每次創建圖標」,因爲它看起來更好,我寧願不要只要有可能就干涉StyleSheet。謝謝你解釋我爲什麼會遇到錯誤。 – Leo