当前位置: 首页 > news >正文

住房建设危房改造网站有哪些做分析图用的地图网站

住房建设危房改造网站,有哪些做分析图用的地图网站,wordpress 多重过滤,wordpress 侧边栏插件今天和大家分享一个文本风格的加载动画, 有两类,其中一个可以设置文本内容和文本颜色,演示了两份. 共三个动画, 效果如下: 一共三个文件,可以直接编译 , 如果对您有所帮助的话 , 不要忘了点赞呢. //main.cpp #include LoadingAnimWidget.h #include QApplic…今天和大家分享一个文本风格的加载动画, 有两类,其中一个可以设置文本内容和文本颜色,演示了两份. 共三个动画, 效果如下: 一共三个文件,可以直接编译 , 如果对您有所帮助的话 , 不要忘了点赞呢. //main.cpp #include LoadingAnimWidget.h #include QApplication #include QGridLayout int main(int argc, char *argv[]) {QApplication a(argc, argv);QWidget w;w.setWindowTitle(加载动画 第8季);QGridLayout * mainLayout new QGridLayout;auto* anim1 new TextInBouncingBox(正在加载);mainLayout-addWidget(anim1,0,0);auto* anim2 new TextInBouncingBox(正在加载中);anim2-setBoxColor(slateblue);anim2-setTextColor(white);mainLayout-addWidget(anim2,0,1);auto* anim3 new ExpandingScroll;mainLayout-addWidget(anim3,0,2);w.setLayout(mainLayout);w.show();anim1-start();anim2-start();anim3-start();return a.exec(); } //LoadingAnimWidget.h #ifndef LOADINGANIMWIDGET_H #define LOADINGANIMWIDGET_H #include QPropertyAnimation #include QWidget class LoadingAnimBase:public QWidget {Q_OBJECTQ_PROPERTY(qreal angle READ angle WRITE setAngle) public:LoadingAnimBase(QWidget* parentnullptr);virtual ~LoadingAnimBase();qreal angle()const;void setAngle(qreal an); public slots:virtual void exec();virtual void start();virtual void stop(); protected:QPropertyAnimation mAnim;qreal mAngle; }; class TextInBouncingBox:public LoadingAnimBase{//显示装在上下跳动的盒子里的字符 public:TextInBouncingBox(const QString str,QWidget* parent nullptr);void setTextColor(const QColor color);void setBoxColor(const QColor color); protected:void paintEvent(QPaintEvent*); private:QString mText;QColor mTextColor;QColor mBoxColor; }; class ExpandingScroll:public LoadingAnimBase{//一个圆环转动两圈之后像卷轴一样展示正在加载 public:ExpandingScroll(QWidget* parent nullptr); protected:void paintEvent(QPaintEvent*); }; #endif//LoadingAnimWidget.cpp #include LoadingAnimWidget.h #include QDebug #include QPaintEvent #include QPainter #include QtMath #include QRandomGenerator LoadingAnimBase::LoadingAnimBase(QWidget* parent):QWidget(parent){mAnim.setPropertyName(angle);mAnim.setTargetObject(this);mAnim.setDuration(2000);mAnim.setLoopCount(-1);//run forevermAnim.setEasingCurve(QEasingCurve::Linear);setFixedSize(200,200);mAngle 0; } LoadingAnimBase::~LoadingAnimBase(){} void LoadingAnimBase::exec(){if(mAnim.state() QAbstractAnimation::Stopped){start();}else{stop();} } void LoadingAnimBase::start(){mAnim.setStartValue(0);mAnim.setEndValue(360);mAnim.start(); } void LoadingAnimBase::stop(){mAnim.stop(); } qreal LoadingAnimBase::angle()const{ return mAngle;} void LoadingAnimBase::setAngle(qreal an){mAngle an;update(); } TextInBouncingBox::TextInBouncingBox(const QString str,QWidget* parent ):LoadingAnimBase (parent),mText(str),mBoxColor(darkslategray),mTextColor(yellow){setFont(QFont(Microsoft YaHei,16,2)); } void TextInBouncingBox::setTextColor(const QColor color){if(mTextColor ! color){mTextColor color;update();} } void TextInBouncingBox::setBoxColor(const QColor color){if(mBoxColor ! color){mBoxColor color;update();} }void TextInBouncingBox::paintEvent(QPaintEvent*){const int len mText.size();if(len 0) return;QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing);QFontMetrics fm(font());const int txtH fm.height();const int rectH txtH 4;const int rectW fm.horizontalAdvance(w)4;const qreal x width();const qreal y height();painter.translate(0.1*x,0.6*y);painter.setBrush(QBrush(mBoxColor));const qreal amplitude rectH*0.3;const qreal offset M_PI / len / 2;for(int i 0;i len;i){QRectF rct( i*rectW,-rectH - amplitude*qSin(-2*M_PI / 360 * mAngle offset*i) ,rectW,rectH);painter.setPen(Qt::NoPen);painter.drawRect(rct); //画一个小盒子painter.setPen(mTextColor);painter.drawText(rct,Qt::AlignCenter,QString(mText[i])); //画一个字符} }ExpandingScroll::ExpandingScroll(QWidget* parent):LoadingAnimBase (parent){setFont(QFont(Microsoft YaHei,16,2));mAnim.setDuration(4000); }void ExpandingScroll::paintEvent(QPaintEvent*){QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing);qreal x width();qreal y height();painter.translate(x/2,y/2);painter.setBrush(Qt::NoBrush);QPen pen(black);static const qreal penWidth 4;pen.setWidthF(penWidth);painter.setPen(pen);x - 4;y - 4;const auto ang mAngle;const int arr[9] {20,30,60,90,150,180,210,275,345};//9个时间节点,分割下面10个分支if(ang arr[0]){//中间的竖线转变为半圆弧线const qreal h 0.25*x;painter.drawLine(0,h/2 - ang/arr[0] * h,0,-h/2);painter.drawArc(QRectF(0,-1.5*h,2*h,2*h),180*16,-180*16*ang/arr[0]);}else if(ang arr[1]){//半圆弧线转变为四分之一圆弧和右侧的小竖线const qreal h 0.25*x;const qreal ratio (ang-arr[0])/(arr[1] - arr[0]);qreal start 180 - 90*ratio;painter.drawArc(QRectF(0,-1.5*h,2*h,2*h),start*16,-start*16);painter.drawLine(x/2,-h/2,x/2,-h/2h/2*ratio);}else if(ang arr[2]){//剩下的上方的四分之一圆弧转为大的下方的八分之一圆弧const qreal h 0.25*x;const qreal ratio (ang - arr[1]) / (arr[2] - arr[1]);qreal start 90 - 90 * ratio;painter.drawArc(QRectF(0,-1.5*h,2*h,2*h),start*16,-start*16);painter.drawLine(x/2,-h/2,x/2,0);painter.drawArc(QRectF(-x/2,-y/2,x,y),0,-45*16*ratio);}else if(ang arr[3]){//小竖线转为下方的大的八分之一圆弧const qreal h x/8;qreal ratio (ang-arr[2]) / (arr[3] - arr[2]);painter.drawLine(x/2,-h*(1-ratio),x/2,0);painter.drawArc(QRectF(-x/2,-y/2,x,y),0,-(4545*ratio)*16);}else if(ang arr[4]){//大圆弧转两圈qreal ratio (ang - arr[3]) / (arr[4] - arr[3]);painter.rotate(720*ratio);painter.drawArc(QRectF(-x/2,-y/2,x,y),0,-90*16);}else if(ang arr[5]){//大圆弧转为竖线qreal ratio (ang-arr[4]) / (arr[5] - arr[4]);painter.drawArc(QRectF(-x/2,-y/2,x,y),-90*ratio*16,-90*(1-ratio)*16);painter.drawLine(0,y/2,0,y/2 - 0.625*ratio*y);}else if(ang arr[6]){//竖线缩小一下qreal ratio (ang - arr[5]) / (arr[6] - arr[5]);painter.drawLine(0,y/2 - 0.375*y*ratio,0,-0.125*y);}else if(ang arr[7]){//展开卷轴qreal ratio (ang - arr[6]) / (arr[7] - arr[6]);QPainterPath pp;pp.addRect(QRectF(-0.375*x*ratio,-0.125*y,0.75*x*ratio,y/4).adjusted(penWidth/-2,penWidth/-2,penWidth/2,penWidth/2));painter.setClipPath(pp);const auto rct QRectF(-0.375*x,-0.125*y,0.75*x,y/4);painter.setBrush(QBrush(burlywood));painter.drawRoundedRect(rct,4,4);painter.drawText(rct,Qt::AlignCenter,正在加载);}else if(ang arr[8]){//展示一小段时间const auto rct QRectF(-0.375*x,-0.125*y,0.75*x,y/4);painter.setBrush(QBrush(burlywood));painter.drawRoundedRect(rct,4,4);painter.drawText(rct,Qt::AlignCenter,正在加载);}else{//收起卷轴qreal ratio (ang - arr[8])/(360 - arr[8]);QPainterPath pp;pp.addRect(QRectF(-0.375*x* (1-ratio),-0.125*y,0.75*x*(1-ratio),y/4).adjusted(penWidth/-2,penWidth/-2,penWidth/2,penWidth/2));painter.setClipPath(pp);const auto rct QRectF(-0.375*x,-0.125*y,0.75*x,y/4);painter.setBrush(QBrush(burlywood));painter.drawRoundedRect(rct,4,4);painter.drawText(rct,Qt::AlignCenter,正在加载);} }
http://www.zqtcl.cn/news/936788/

相关文章:

  • 设计常用网站网站常见程序问题
  • 做网站竟然不知道cms如何添加网站图标
  • 东莞阳光网站官网缘魁上海网站建设
  • 山西孝义网站开发平面设计类网站有哪些
  • 手机版怎么做微电影网站青岛网站设计定制
  • 部队织梦网站模板免费下载红河网站建设代理
  • 网站开发学院网页制作模板html图片
  • 企业门户网站模板html上线网站备案和实名认证
  • 抖音代运营内容seo职业规划
  • dedecms网站制作教程做网站买好域名怎么办
  • 网站建立于网页设计ai网站设计
  • 青海省建设工程造价网站电商设计网站培训
  • 软件开发过程的阶段划分优化手机访问网站速度
  • 知名网站建设公司做分销网站好吗
  • 服务器php网站打不开潍坊网站模板在哪
  • 网站管理员要干些什么开发公司专票
  • 陕西省建设银行网站6网站都有什么类型的
  • 哪里有做网站设计全国室内设计学校
  • 简单的网站php开发教程账户竞价托管哪里好
  • dede网站搬家教程浙江省住房和城乡建设部网站
  • 网站分页符怎么做做网站是什么意思
  • 影视网站开发工程师店铺装修
  • ip138查询网站网址域名ip网站外包制作
  • 网站建设需求怎么写网站seo快速排名优化
  • 网站后台文章添加成功 不显示注册安全工程师是干什么的
  • 网页制作网站建设百度网站推广费用多少钱
  • 长沙网站建设软件wordpress加菜单
  • 网站建设教育板块wordpress $pagenow
  • 岳阳手机网站建设自己可以给公司做网站吗
  • 旅游网站建设目的关于建设网站的需求分析