From 3f3d44af99e5f07276fcc7c16cdfd6131f1ce230 Mon Sep 17 00:00:00 2001 From: youyicc Date: Wed, 7 Apr 2021 22:34:35 +0800 Subject: [PATCH] Code --- GroupWidget.cpp | 16 ++++ GroupWidget.h | 15 ++++ MainWidget.cpp | 77 +++++++++++++++++++ MainWidget.h | 25 ++++++ Picture/Qt.png | Bin 0 -> 18002 bytes QRoundProgressBar.cpp | 174 ++++++++++++++++++++++++++++++++++++++++++ QRoundProgressBar.h | 61 +++++++++++++++ QRoundProgressBar.pro | 35 +++++++++ main.cpp | 11 +++ pic.qrc | 5 ++ 10 files changed, 419 insertions(+) create mode 100644 GroupWidget.cpp create mode 100644 GroupWidget.h create mode 100644 MainWidget.cpp create mode 100644 MainWidget.h create mode 100644 Picture/Qt.png create mode 100644 QRoundProgressBar.cpp create mode 100644 QRoundProgressBar.h create mode 100644 QRoundProgressBar.pro create mode 100644 main.cpp create mode 100644 pic.qrc diff --git a/GroupWidget.cpp b/GroupWidget.cpp new file mode 100644 index 0000000..ba1f1fb --- /dev/null +++ b/GroupWidget.cpp @@ -0,0 +1,16 @@ +#include "GroupWidget.h" + +GroupWidget::GroupWidget(QWidget *parent) + : QDialog(parent) +{ + //设置最小尺寸 + setFixedSize(240,300); + //去掉问号 + setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint); + //设置对话框标题 + setWindowTitle(QStringLiteral("加群联系作者")); + setStyleSheet("border-image:url(://Picture/Qt.png)"); +} + +GroupWidget::~GroupWidget() +{} diff --git a/GroupWidget.h b/GroupWidget.h new file mode 100644 index 0000000..8a593dd --- /dev/null +++ b/GroupWidget.h @@ -0,0 +1,15 @@ +#ifndef GROUPWIDGET_H +#define GROUPWIDGET_H + +#include + +class GroupWidget : public QDialog +{ + Q_OBJECT + +public: + GroupWidget(QWidget *parent = 0); + ~GroupWidget(); +}; + +#endif diff --git a/MainWidget.cpp b/MainWidget.cpp new file mode 100644 index 0000000..49322b2 --- /dev/null +++ b/MainWidget.cpp @@ -0,0 +1,77 @@ +#include "MainWidget.h" + +Widget::Widget(QWidget *parent) + : QDialog(parent) +{ + //窗口基础设置 + setFixedSize(300,350); + setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint); + setStyleSheet("background-color:rgb(68,68,68);"); + + //初始化控件 + QPushButton* btn_Test=new QPushButton(); + QPushButton* btn_GetCode=new QPushButton(); + QVBoxLayout* mainLayout=new QVBoxLayout(); + + //这只按钮文字 + btn_Test->setText(QStringLiteral("测试")); + btn_GetCode->setText(QStringLiteral("获取源码")); + + //设置按钮高度 + btn_Test->setFixedHeight(30); + btn_GetCode->setFixedHeight(30); + + //设置按钮样式表 + btn_Test->setStyleSheet("border-radius:4px;background-color:rgb(230,230,230);"); + btn_GetCode->setStyleSheet("border-radius:4px;background-color:rgb(230,230,230);"); + + //环形进度条初始化 + round_Bar=new QRoundProgressBar(); + + //环形进度条可选设置 + do{ + //round_Bar->SetStartAngle(-30); + //round_Bar->SetEndAngle(210); + //round_Bar->SetMaxRadius(100); + //round_Bar->SetRingWidth(20); + //round_Bar->SetIcomWidth(25); + //round_Bar->SetCircularBorderColor(qRgb(255,0,0)); + //round_Bar->SetInsideMaskColor(qRgb(0,255,0)); + //round_Bar->SetRadialGradient(qRgb(10,10,10),qRgb(120,0,120)); + //SlotBtnTest(); + }while(0); + + + //初始化并设置布局 + QHBoxLayout* btnLayout=new QHBoxLayout(); + btnLayout->setMargin(10); + btnLayout->setSpacing(10); + btnLayout->addWidget(btn_Test); + btnLayout->addWidget(btn_GetCode); + + mainLayout->setMargin(20); + mainLayout->setSpacing(0); + mainLayout->addSpacing(20); + mainLayout->addWidget(round_Bar); + mainLayout->addLayout(btnLayout); + setLayout(mainLayout); + + //添加信号与槽 + connect(btn_Test,&QPushButton::clicked,this,&Widget::SlotBtnTest); + connect(btn_GetCode,&QPushButton::clicked,this,&Widget::SlotBtnGetCode); +} + +Widget::~Widget() +{ +} + +void Widget::SlotBtnTest() +{ + round_Bar->SetCurrPrograss(qrand()%100); +} + +void Widget::SlotBtnGetCode() +{ + GroupWidget widget; + widget.exec(); +} diff --git a/MainWidget.h b/MainWidget.h new file mode 100644 index 0000000..6e87b98 --- /dev/null +++ b/MainWidget.h @@ -0,0 +1,25 @@ +#ifndef WIDGET_H +#define WIDGET_H + +#include +#include +#include +#include + +#include "GroupWidget.h" +#include "QRoundProgressBar.h" + +class Widget : public QDialog +{ + Q_OBJECT + + QRoundProgressBar* round_Bar; + +public: + Widget(QWidget *parent = nullptr); + ~Widget(); + + void SlotBtnTest(); + void SlotBtnGetCode(); +}; +#endif // WIDGET_H diff --git a/Picture/Qt.png b/Picture/Qt.png new file mode 100644 index 0000000000000000000000000000000000000000..88ffa68fafe759a250825ac13a9ba1ef6e12968d GIT binary patch literal 18002 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 L{an^LB{Ts5q!@AR literal 0 HcmV?d00001 diff --git a/QRoundProgressBar.cpp b/QRoundProgressBar.cpp new file mode 100644 index 0000000..5ed1c99 --- /dev/null +++ b/QRoundProgressBar.cpp @@ -0,0 +1,174 @@ +#include "QRoundProgressBar.h" + +QRoundProgressBar::QRoundProgressBar(QWidget *parent) : + QWidget(parent) +{ + //给变量设置初始值-默认值 + startAngle=-45; + endAngle=225; + ringWidth=20; + maxRadius=110; + iconWidth=15; + currAngle=270; + circularBorderColor=qRgb(120,120,120); + insideMaskColor=qRgb(68,68,68); + startGradientColor=qRgb(80,80,80); + endGradientColor=qRgb(150,140,20); +} + +void QRoundProgressBar::SetStartAngle(int value) +{ + startAngle=value; +} + +void QRoundProgressBar::SetEndAngle(int value) +{ + endAngle=value; +} + +void QRoundProgressBar::SetMaxRadius(int value) +{ + maxRadius=value; +} + +void QRoundProgressBar::SetRingWidth(int value) +{ + ringWidth=value; +} + +void QRoundProgressBar::SetIcomWidth(int value) +{ + iconWidth=value; +} + +void QRoundProgressBar::SetCircularBorderColor(QRgb value) +{ + circularBorderColor=value; +} + +void QRoundProgressBar::SetInsideMaskColor(QRgb value) +{ + insideMaskColor=value; +} + +void QRoundProgressBar::SetRadialGradient(QRgb startColor,QRgb endColor) +{ + startGradientColor=startColor; + endGradientColor=endColor; +} + +void QRoundProgressBar::SetCurrPrograss(int value) +{ + currAngle=value; + update(); +} + +void QRoundProgressBar::paintEvent(QPaintEvent*) +{ + //初始化变量 + QPainter painter(this); + // 右移1位 相当于width()/2 + painter.translate(width() >> 1, height() >> 1); + //启动反锯齿 + painter.setRenderHint(QPainter::Antialiasing); + + //绘制外圆 + DrawOutSideCircle(painter); + //绘制两个小圆外圆 + DrawTwoSmallCircle(painter,0); + //绘制圆环 + DrawCircularRing(painter,0); + //绘制两个小圆内圆 + DrawTwoSmallCircle(painter,1); + //绘制渐变色圆环 + DrawGradientCircle(painter,maxRadius-1); + //绘制内圆 + DrawInSideCircle(painter); + //绘制进度小圆 + DrawBarIcon(painter); +} + +void QRoundProgressBar::GradientArc(QPainter &painter,int radius,QRgb color) +{ + // 渐变色 + QRadialGradient gradient(0, 0, radius); + gradient.setColorAt(0, color); + gradient.setColorAt(1.0, color); + painter.setBrush(gradient); + + QRectF rect(-radius, -radius, radius << 1, radius << 1); + QPainterPath path; + path.arcTo(rect, startAngle, endAngle-startAngle); + + painter.setPen(Qt::NoPen); + painter.drawPath(path); +} + +void QRoundProgressBar::GradientFullArc(QPainter &painter,QPointF& point,int radius,QRgb color) +{ + // 渐变色 + QRadialGradient gradient(0, 0, radius); + gradient.setColorAt(0, color); + gradient.setColorAt(1.0, color); + painter.setBrush(gradient); + painter.drawEllipse(point,radius,radius); +} + +void QRoundProgressBar::DrawOutSideCircle(QPainter& painter) +{ + GradientArc(painter,maxRadius,circularBorderColor); +} + +void QRoundProgressBar::DrawCircularRing(QPainter& painter,int) +{ + GradientArc(painter,maxRadius-1,startGradientColor); +} + +void QRoundProgressBar::DrawTwoSmallCircle(QPainter& painter,int type) +{ + //计算小圆坐标 + QPoint rightCircle(0,0); + QPoint leftCircle(0,0); + rightCircle.setY(-(qSin(startAngle*M_PI/180)*(maxRadius-ringWidth/2))); + rightCircle.setX(qCos(startAngle*M_PI/180)*(maxRadius-ringWidth/2)+1); + leftCircle.setX(-rightCircle.rx()); + leftCircle.setY(rightCircle.ry()); + if(type==0){ + painter.drawEllipse(rightCircle,ringWidth/2,ringWidth/2); + painter.drawEllipse(leftCircle,ringWidth/2,ringWidth/2); + } + else{ + painter.drawEllipse(rightCircle,ringWidth/2-1,ringWidth/2-1); + painter.drawEllipse(leftCircle,ringWidth/2-1,ringWidth/2-1); + } +} + +void QRoundProgressBar::DrawInSideCircle(QPainter& painter) +{ + QPointF point(0,0); + GradientArc(painter,maxRadius-ringWidth+1,circularBorderColor); + GradientFullArc(painter,point,maxRadius-ringWidth,insideMaskColor); + //GradientFullArc(painter,maxRadius*3/4,qRgb(48,48,48)); +} + +void QRoundProgressBar::DrawGradientCircle(QPainter& painter,int radius) +{ + QConicalGradient conicalGradient(QPointF(0, 0), endAngle+1); + conicalGradient.setColorAt((360-qAbs(endAngle-startAngle)+currAngle)/360.0, endGradientColor); + conicalGradient.setColorAt(1, startGradientColor); + painter.setBrush(conicalGradient); + QPainterPath path; + QRectF rect(-radius, -radius, radius << 1, radius << 1); + path.arcTo(rect, startAngle+currAngle, endAngle-startAngle-currAngle); + painter.setPen(Qt::NoPen); + painter.drawPath(path); +} + +void QRoundProgressBar::DrawBarIcon(QPainter& painter) +{ + QPointF point(0,0); + point.setX(point.x()+qCos((startAngle+currAngle)*M_PI/180)*(maxRadius-ringWidth/2)); + point.setY(point.y()-qSin((startAngle+currAngle)*M_PI/180)*(maxRadius-ringWidth/2)); + GradientFullArc(painter,point,iconWidth,endGradientColor); + GradientFullArc(painter,point,iconWidth*0.6,startGradientColor); +} diff --git a/QRoundProgressBar.h b/QRoundProgressBar.h new file mode 100644 index 0000000..2f6b6e6 --- /dev/null +++ b/QRoundProgressBar.h @@ -0,0 +1,61 @@ +#ifndef QROUNDPROGRESSBAR_H +#define QROUNDPROGRESSBAR_H + +#include +#include +#include +#include +#include +#include +#include +#include + +class QRoundProgressBar : public QWidget +{ + Q_OBJECT + +private: + int startAngle; //起始角度 + int endAngle; //结束角度 + int ringWidth; //环宽度 + int maxRadius; //大圆半径 + int iconWidth; //图标的宽度 + int currAngle; //当前进度条对应的角度 + + QRgb circularBorderColor; + QRgb insideMaskColor; + QRgb startGradientColor; + QRgb endGradientColor; + +private: + void DrawBarIcon(QPainter&); + void GradientArc(QPainter&,int,QRgb); + void GradientFullArc(QPainter&,QPointF&,int,QRgb); + void DrawOutSideCircle(QPainter&); + void DrawCircularRing(QPainter&,int); + void DrawTwoSmallCircle(QPainter&,int); + void DrawInSideCircle(QPainter&); + void DrawGradientCircle(QPainter&,int); + +public: + explicit QRoundProgressBar(QWidget *parent = nullptr); + +protected: + void paintEvent(QPaintEvent *event); + +public: + //初始化调用函数 + void SetStartAngle(int); //设置起始角度值 + void SetEndAngle(int); //设置结束角度值 + void SetMaxRadius(int); //设置圆环外圆半径 + void SetRingWidth(int); //设置圆环宽度 + void SetIcomWidth(int); //设置进度图标大小 + void SetCircularBorderColor(QRgb); //设置圆环边框颜色 + void SetInsideMaskColor(QRgb); //设置内圆遮罩颜色 + void SetRadialGradient(QRgb,QRgb); //设置圆环渐变色 + + void SetCurrPrograss(int); //设置当前进度条进度值 + +}; + +#endif diff --git a/QRoundProgressBar.pro b/QRoundProgressBar.pro new file mode 100644 index 0000000..b850304 --- /dev/null +++ b/QRoundProgressBar.pro @@ -0,0 +1,35 @@ +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +CONFIG += c++11 + +# The following define makes your compiler emit warnings if you use +# any Qt feature that has been marked deprecated (the exact warnings +# depend on your compiler). Please consult the documentation of the +# deprecated API in order to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS + +# You can also make your code fail to compile if it uses deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +SOURCES += \ + GroupWidget.cpp \ + QRoundProgressBar.cpp \ + main.cpp \ + MainWidget.cpp + +HEADERS += \ + GroupWidget.h \ + MainWidget.h \ + QRoundProgressBar.h + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target + +RESOURCES += \ + pic.qrc diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..2cd24cd --- /dev/null +++ b/main.cpp @@ -0,0 +1,11 @@ +#include "MainWidget.h" + +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + Widget w; + w.show(); + return a.exec(); +} diff --git a/pic.qrc b/pic.qrc new file mode 100644 index 0000000..84742a0 --- /dev/null +++ b/pic.qrc @@ -0,0 +1,5 @@ + + + Picture/Qt.png + +