Qt QPushButton水晶按钮样式例子

1.这几个都是代码实现的,不使用图片,具体实现如下:

实现方式就是设置这5个位置的颜色值(用取色值的工具就可以获取到RGB值)和边框颜色值就好

按照上述的位置取值,再以下例子,供大家参考:


QPushButton {
background:qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, 
stop:0 rgba(250, 204, 246, 255), /*第1个颜色值*/
stop:0.25 rgba(243, 144, 236, 255), /*第2个颜色值*/
stop:0.5 rgba(238, 81, 223, 255), /*第3个颜色值*/
stop:0.65 rgba(239, 92, 225, 255), /*第4个颜色值*/
stop:1 rgba(249, 186, 243, 255));/*第5个颜色值*/
border: 2px solid rgb(240,102,255);/*边框颜色值*/
 border-radius: 10px;
}


QPushButton {
background:qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, 
stop:0 rgba(204, 250, 227, 255), /*第1个颜色值*/
stop:0.25 rgba(126, 242, 185, 255), /*第2个颜色值*/
stop:0.5 rgba(76, 237, 157, 255), /*第3个颜色值*/
stop:0.65 rgba(91, 239, 166, 255), /*第4个颜色值*/
stop:1 rgba(184, 248, 217, 255));/*第5个颜色值*/
border: 2px solid rgb(78,238,158);/*边框颜色值*/
 border-radius: 10px;
}


QPushButton {
background:qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, 
stop:0 rgba(249, 202, 201, 255), /*第1个颜色值*/
stop:0.25 rgba(242, 126, 126, 255), /*第2个颜色值*/
stop:0.5 rgba(237, 78, 78, 255), /*第3个颜色值*/
stop:0.65 rgba(238, 89, 89, 255), /*第4个颜色值*/
stop:1 rgba(247, 175, 175, 255));/*第5个颜色值*/
border: 2px solid rgb(237,80,78);/*边框颜色值*/
 border-radius: 10px;
}


QPushButton {

background:qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, 
stop:0 rgba(199, 238, 249, 255), 
stop:0.25 rgba(132, 217, 243, 255), 
stop:0.5 rgba(80, 200, 238, 255), 
stop:0.65 rgba(87, 203, 239, 255), 
stop:1 rgba(186, 233, 249, 255));
 border: 2px solid rgb(106,208,240);
 border-radius: 10px;
}


QPushButton {

background:qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, 
stop:0 rgba(247, 250, 204, 255), 
stop:0.25 rgba(236, 243, 133, 255), 
stop:0.5 rgba(226, 237, 76, 255), 
stop:0.65 rgba(229, 239, 91, 255), 
stop:1 rgba(229, 233, 160, 255));
 border: 2px solid rgb(225,238,78);
 border-radius: 10px;
}

 

常用的有如下几个:
/*按钮按下*/
QPushButton:pressed{
}

/*按钮选中*/
QPushButton:checked{
}

/*鼠标划过*/
QPushButton:hover{
}

 2.不使用图片的,纯代码写的样式也可以这样:

.QPushButton {
        background:qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, 
stop:0 rgba(233, 233, 233, 255), 
stop:0.35 rgba(220, 220, 220, 255), 
stop:0.5 rgba(213, 213, 213, 255), 
stop:0.65 rgba(230, 230, 230, 255), 
stop:1 rgba(242, 242, 242, 255));
 border: 1px solid rgb(128,126,126);
 border-radius: 5px;
}
.QPushButton:hover{
        background:qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, 
stop:0 rgba(250, 250, 250, 255), 
stop:0.5 rgba(255, 255, 255, 255), 
stop:1 rgba(250, 250, 250, 255));
 border: 1px solid rgb(63,140,161);
 border-radius: 5px;
}

.QPushButton:pressed{
        background:qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, 
stop:0 rgba(255, 255, 255, 255), 
stop:0.5 rgba(235, 247, 253, 255), 
stop:1 rgba(213, 237, 250, 255));
 border: 1px solid rgb(3,110,183);
 border-radius: 5px;
}

 3.如果不想写纯代码的样式,可以使用图片的样式

QPushButton {
border-image: url(:/image/functionButtons/normal_button_hover.png);
}

.QPushButton:hover{
border-image: url(:/image/functionButtons/normal_button_pressed.png);
}

.QPushButton:pressed{
border-image: url(:/image/functionButtons/normal_button.png);
}

样式设置链接:
Qt QPushButton水晶按钮样式例子:Qt QPushButton水晶按钮样式例子_hss2799的专栏-优快云博客
QTabWidget 样式例子:QTabWidget 样式例子_hss2799的专栏-优快云博客_qtabwidget样式
QSlider 样式例子:QSlider 样式例子_hss2799的专栏-优快云博客
QTreeWidget 样式设置记录:QTreeWidget 样式设置记录_hss2799的专栏-优快云博客
QT 透明样式设置:QT 透明样式设置_hss2799的专栏-优快云博客
Qt 用样式实现实心圆和空心圆:Qt 用样式实现实心圆和空心圆_hss2799的专栏-优快云博客
QToolTip样式设置的两种方式:QToolTip样式设置的两种方式_hss2799的专栏-优快云博客

Qt QDateEdit 日期样式设置例子:Qt QDateEdit 日期样式设置例子_hss2799的专栏-优快云博客

Qt 中,你可以通过样式表 (QSS - Qt Style Sheets) 来设置 `QPushButton` 的悬停颜色。以下是详细步骤: --- ### 设置按钮的悬停颜色 Qt 提供了一种类似 CSS 样式的方式来自定义控件外观,这就是 QSS(Qt Style Sheet)。为了给 `QPushButton` 添加悬停效果,我们可以利用伪状态选择器 `:hover`。 #### 示例代码: ```cpp #include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton button("Hover Me"); // 使用样式表设置悬停时的颜色 button.setStyleSheet( "QPushButton { " "background-color: white; " // 默认背景色 "color: black;" // 默认文字颜色 "} " "QPushButton:hover { " "background-color: lightblue; " // 鼠标悬浮时背景变为浅蓝色 "color: red;" // 文字颜色变为红色 "}" ); button.resize(200, 50); button.show(); return app.exec(); } ``` --- ### 解释样式的含义 1. **默认状态下**: ```css QPushButton { background-color: white; color: black; } ``` 当鼠标未移动到按钮上时,背景为白色,字体为黑色。 2. **悬停状态下**: ```css QPushButton:hover { background-color: lightblue; color: red; } ``` 当鼠标悬停在按钮上方时,背景会变成浅蓝色,字体颜色变红。 --- ### 注意事项 - **性能优化**:频繁更改样式可能会导致重绘开销较大,特别是在复杂界面中应谨慎使用动态效果。 - **跨平台一致性**:尽管大多数现代系统都支持这种技术,但在某些特殊平台上仍需测试是否一致显示预期结果。 - **禁用按钮的状态处理**:如果你希望对不可用(`disabled`)按钮也定制风格,则可以用`:disabled`伪状态进一步扩展规则。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值