Qt自定义控件(一)-- 状态栏按键

自定义控件功能说明

1.想要在状态栏显示按键。
2.按键左边能显示信息。
3.按键显示圆形,按下按键能够切换按键的显示状态。
4.按按键能够跳到对应的事件中去。

实现的效果图

在这里插入图片描述

源代码:

#ifndef STATUSBUTTON_H
#define STATUSBUTTON_H

#include <QWidget>

namespace Ui {
class StatusButton;
}

class StatusButton : public QWidget
{
    Q_OBJECT
    enum ButtonColor{RED,GREEN};

public:
    explicit StatusButton(QWidget *parent = nullptr);
    ~StatusButton();
    void setText(const QString text);
    void setButtonColor(ButtonColor color=RED);
    void setTextAndButton(const QString text,ButtonColor color);
private slots:
    void on_toolButton_triggered(QAction *arg1);
    void on_toolButton_clicked();

private:
    Ui::StatusButton *ui;
    QStringList m_listColor;
};

#endif // STATUSBUTTON_H

cpp

#include "statusbutton.h"
#include "ui_statusbutton.h"
#include <QDebug>

StatusButton::StatusButton(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::StatusButton)
{
    ui->setupUi(this);
    QString green="QToolButton { border-radius:9px;background-color: rgb(85, 255, 0);}"
                  "QToolButton:pressed {border-width:3;border-color:orange;border-style:solid;;background-color: rgb(255, 255, 255);}";
    QString red="QToolButton { border-radius:9px; background-color: rgb(255, 0, 0);}"
                "QToolButton:pressed {border-width:3;border-color:orange;border-style:solid;;background-color: rgb(255, 255, 255);}";
    m_listColor.push_back(red);
    m_listColor.push_back(green);
    //设置开始默认颜色
    setButtonColor();
}

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


void StatusButton::on_toolButton_triggered(QAction *arg1)
{
    qDebug()<<u8"点击了按键";
}

void StatusButton::on_toolButton_clicked()
{
    qDebug()<<u8"点击了按键";
    //ui->toolButton->setStyleSheet("QToolButton{border-radius:9px;background-color: rgb(255, 0, 0);}");
    QString str="QToolButton {border-radius:9px; background-color: rgb(255, 0, 0);background-color: rgb(85, 255, 0);}"
                "QToolButton::pressed {color:orange;border-width:3;border-color:orange;border-style:solid;;background-color: rgb(255, 255, 255);}}";
    ui->toolButton->setStyleSheet(str);
}

void StatusButton::setText(const QString text)
{
   ui->label->setText(text);
}

void StatusButton::setButtonColor(ButtonColor color)
{
    ui->toolButton->setStyleSheet(m_listColor[color]);
    qDebug()<<m_listColor[color];
}

void StatusButton::setTextAndButton(const QString text,ButtonColor color)
{
    setText(text);
    setButtonColor(color);
}


已经上传到平台,有需要自行免费下载。
https://download.csdn.net/download/simple_core/85393269

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值