Qt中使用setStyleSheet對按鈕進行外觀設定

pamxy發表於2013-06-14

轉自:http://hi.baidu.com/xf19890224/item/de35dea94784c536030a4de9

 

字型顏色的設定一般時以下兩種方案:

(1)屬於QWidget子類的一些控制元件

可以直接使用樣式表,例如label->setStyleSheet("color:white");
(2)不屬於QWidget子類的控制元件

可以考慮設定其前景色,例如各種ViewtreeWidgetItem->setForeground(0,QBrush(QColor(Qt::white)));

-------------------------------------------------------------------------------------------------

要實現的效果

正常狀態下:黑底(背景色),白字(前景色),圓角,向外凸起;

滑鼠停留:背景和前景都反色;

滑鼠按下:背景色變為淡藍色,向內凹陷。

程式碼:

ui->pushButton_GoToProcess->setStyleSheet("QPushButton{background-color:black;\

                                            color: white;   border-radius: 10px;  border: 2px groove gray;\

                                            border-style: outset;}"

                                           "QPushButton:hover{background-color:white; color: black;}"

                                          "QPushButton:pressed{background-color:rgb(85, 170, 255);\

                                                           border-style: inset; }"

                                           );

結果:

(1)正常狀態

(2)滑鼠停留


(3)滑鼠按下


-------------------------------------------------------------------------------------------------

如果要對多個按鈕實現同樣的效果,只要將setStyleSheet裡的字串定義成QString,後面其他按鈕直接呼叫這個QString就好了。

定義:

QString button_style="QPushButton{background-color:black;\

                                      color: white;   border-radius: 10px;  border: 2px groove gray;\

                                      border-style: outset;}"

                                     "QPushButton:hover{background-color:white; color: black;}"

                                    "QPushButton:pressed{background-color:rgb(85, 170, 255);\

                                                     border-style: inset; }";

呼叫:

ui->pushButton_Save->setStyleSheet(button_style);



-------------------------------------------------------------------------------------------------

對於按鈕如果想設定為圖片,則最好使用新增icon,這樣的話位置比較合適,如果是使用setStyleSheet還需要對位置進行設定(直接設定會發現位置有點偏)。另外要加上一句:


 

相關文章