自定义控件功能说明
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