QT c++ 样式 设置 按钮(QPushButton)的渐变色美化

devtools/2025/1/16 11:40:11/

上一篇文章中描述了标签的渐变色美化,本文描述按钮的渐变色美化

1.头文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
//#include "CustomButton.h"
#include <QVBoxLayout>
#include <QLinearGradient>
#include <QPushButton>

//#include <QLabel>
//#include <QTimer>
QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    void initUI();
    //void setButton(QPushButton * button,int color,int width,int height);
private:
    Ui::Widget *ui;
    //CustomButton *button;
    QPushButton *button2;
   // QLabel *label;
   // QTimer *timer;
    //int counter=0;
    bool flag_on=false;//on/off标志

};
#endif // WIDGET_H

2.cpp文件

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    initUI();
}

Widget::~Widget()
{
    delete ui;
}

void Widget::initUI()
{

    QVBoxLayout * mainlayout = new QVBoxLayout(this);//指定布局属于啥组件
    setStyleSheet("background-color:rgb(160,203,254);");

       QPushButton *button2=new QPushButton(this)  ;
        button2->setFixedWidth(65);
        button2->setFixedHeight(33);
        //button2->setStyleSheet("background-color:#dddddd");//初始背景颜色
        //setButton(button2,4,65,33);
        QObject::connect(button2, &QPushButton::pressed,
                [button2,this]()//lambda函数
                {
                    flag_on=!flag_on;//状态取反
                    //qDebug("pressed!");
                    if(flag_on)
                    {
                        QString color_on=
                            "border:1px solid gray;"
                            "background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, "
                            "stop: 0 #669066,"
                            "stop: 0.5 #43ff43,"
                            "stop: 1 #669066);";
                            //"background-color:#00ff73;";//上面几行是线性过渡色
                            button2->setStyleSheet(color_on);
                            //qDebug("On!");
                    }
                    else
                    {
                        QString color_off=
                            "border:1px solid gray;"
                             "background-color: qlineargradient(x1: 0, y1: 0, x2:0, y2: 1, "
                            "stop: 0.1 #aaaaaa,"
                            "stop: 0.5 #ffffff,"
                            "stop: 1 #cccccc);";
                            // "background-color:#f6f6f6;";//上面几行是线性过渡色
                            button2->setStyleSheet(color_off) ;
                            //qDebug("Off!");
                    }


                 });
        mainlayout->addWidget(button2);//指定布局包含啥组件

   this->setLayout(mainlayout);
}

//效果,两种状态的渐变色效果如下

  

    off                    on


http://www.ppmy.cn/devtools/150296.html

相关文章

Maven在不同操作系统上如何安装?

大家好&#xff0c;我是袁庭新。Maven是一个重要的工具&#xff0c;还有很多初学者竟然不知道如何安装Maven&#xff1f;这篇文章将系统介绍如何在Windows、macOS、Linux操作系统上安装Maven。 Maven是一个基于Java的项目管理工具。因此&#xff0c;最基本的要求是在计算机上安…

uniapp使用sm4加密

安装&#xff1a;npm install sm-crypto --save 1、在utils下新建crypto.js文件 // sm4 加密 export function encryption(params) {const SM4 require("sm-crypto").sm4const key 0123456789abcdeffedcba9876543212; // 提供的密钥const iv fedcba9876543210012…

Android studio gradle与gradle插件

最终换gradle版本&#xff0c;糊成一坨。 记录一下 Android studio里有两个容易搞混&#xff0c;记载一下。 build.gradle文件中的为插件版本&#xff1a; classpath "com.android.tools.build:gradle:3.5.0" gradle.properties里的才是gradle版本。 distributio…

[云原生之旅] K8s-Portforward的另类用法, 立省两个端口

前言 此方法适用于Pod不需要大量连接的情况: 有多个pod在执行任务, 偶尔需要连接其中一个pod查看进度/日志;对pod执行一个脚本/命令; 不适用于大量连接建立的情况: pod启的数据库服务;pod启的Api服务;pod启的前端服务;pod启的Oss服务; Portforward简介 Portforward就是端…

用 Python 从零开始创建神经网络(十九):真实数据集

真实数据集 引言数据准备数据加载数据预处理数据洗牌批次&#xff08;Batches&#xff09;训练&#xff08;Training&#xff09;到目前为止的全部代码&#xff1a; 引言 在实践中&#xff0c;深度学习通常涉及庞大的数据集&#xff08;通常以TB甚至更多为单位&#xff09;&am…

协同过滤算法绿色食品推荐系统|Java|SSM|VUE|

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…

计算机视觉算法实战——吸烟人员检测

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​​​ ​​​​​​​​​​​​ ​​​​​ 1. 领域介绍✨✨ 计算机视觉是人工智能的一个重要分支&#xff0c;旨在通过算法让计算机…

基于大数据可视化+django+爬虫的李宁品牌销售数据分析系统设计和实现(源码+论文+部署讲解等)

博主介绍&#xff1a;CSDN毕设辅导第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流 **技术范围…