Qt QSS QPushButton

QSS功能强大,可以自定义各种小部件的外观,其样式表的概念,术语和语法与HTML的CSS样式表类似。

首先创建qss文件,例如:style.qss,把它加到资源文件中, 在代码里加载文件,代码如下

1 QFile file(":/style.qss"); 
2 file.open(QFile::ReadOnly); 
3 QString styleSheet = tr(file.readAll()); 
4 this->setStyleSheet(styleSheet); 
5 file.close();

qss文件内容如下:

 1 QPushButton#myButton:normal/*鼠标正常时的效果*/
 2 {
 3     color:#000000;
 4     background-color:rgb(40, 85, 20); /*改变背景色*/
 5     border-style:inset;/*改变边框风格*/
 6     padding-left:4px;
 7     padding-top:4px;
 8 }
 9  
10 /*鼠标悬浮时的效果*/
11 QPushButton#myButton:hover
12 {
13     color:#0000ff;
14     background-color:rgb(40, 85, 20); /*改变背景色*/
15     border-style:inset;/*改变边框风格*/
16     padding-left:8px;
17     padding-top:8px;
18 }
19 /*如果按下与悬浮想同时产生效果,hover必须写在pressed的后面*/
20 /*鼠标按下时的效果*/
21 QPushButton#myButton:pressed
22 {
23     color:#00ff00;
24     background-color:rgb(40, 85, 20); /*改变背景色*/
25     border-style:inset;/*改变边框风格*/
26     padding-left:6px;
27     padding-top:6px;
28 }
29  
30 /*鼠标不可用时的效果*/
31 QPushButton#myButton:disabled
32 {
33     color:#000000;
34     background-color:rgb(40, 85, 20); /*改变背景色*/
35     border-style:inset;/*改变边框风格*/
36     padding-left:6px;
37     padding-top:6px;
38 }
39  
40 QPushButton
41 {
42     color:red; /*文字颜色*/
43     background-color:rgb(30, 78, 11);/*背景色*/
44     border-style:outset; /*边框风格*/
45     border-2px;/*边框宽度*/
46     border-color:rgb(10, 46,112); /*边框颜色*/
47     border-radius:10px; /*边框倒角*/
48     font:bold 14px; /*字体*/
49     font-family: Segoe UI;
50     min-100px;/*控件最小宽度*/
51     min-height:20px;/*控件最小高度*/
52     padding:4px;/*内边距*/
53 }
54  
55  
56 /*按钮样式*/
57 QPushButton:flat
58 {
59     border:2px solid red;
60 }
61  
62 /*当按钮打开菜单时:ui->pushButton->setMenu(menu)*/
63 QPushButton:open
64 {
65     background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop:0 #abdeac, stop: 1 #fafc12);
66 }
67  
68 /*子选择器:菜单*/
69 QPushButton::menu-indicator
70 {
71     image:url(":/close_normal.png");
72     /*image:none;去掉小三角号*/
73     subcontrol-origin:padding;/*绘制subcontrol的参考矩形的位置*/
74     subcontrol-position:bottom right;/*小三角的位置*/
75 }
76  
77 QPushButton::menu-indicator:pressed, QPushButton::menu-indicator:open
78 {
79     position:relative;
80     top:4px;
81     left:4px;
82 }
原文地址:https://www.cnblogs.com/ybqjymy/p/14837938.html