2011-02-08 209 views
1

有沒有辦法改變通過修改其QPalette對象來按下的QPushButton的背景顏色?我意識到它可以用樣式表完成,但想通過修改QPalette來實現。類似的東西,以一個沒有被按壓時如何改變按鈕的背景色:按下時更改QPushButton顏色

QPushButton myButton; 
QPalette p(myButton.palette()); 

p.setColor(QPalette::Button, QColor("#ffffff")); 
myButton.setPalette(p); 

回答

2

連接到QPushButton的pressed()信號並更新所需顏色的調色板,然後連接到released()信號並將顏色切換回原來的顏色。這應該做到這一點。

在設置顏色或極端情況下,您可能想要運行update()repaint()

+0

聰明!謝謝! – Chris 2011-02-08 17:38:03

1

連接到按鈕的pressed信號和將調色板設置在連接槽。您可能需要致電repaint()強制立即更新。

0

當按下按鈕時,您可以爲按鈕設置樣式表.. here is the Example講述如何爲按鈕設置樣式表..但在您的情況下,您需要有兩個不同的樣式表,一個按鈕被按下,同樣當它被釋放時你應該重置一些其他樣式表。

2

一個簡單的樣式表添加到qbushbutton本身或者其父母的QWidget:

qwidget.setStyleSheet("QPushButton:checked { background-color: red; }") 

當QPushButton檢查這將背景色設置爲紅色。