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

做推广赚钱的网站给人做违法网站规避

做推广赚钱的网站,给人做违法网站规避,网站建设详细需求文档,专业网站开发制作1、概述 源码放在文章末尾 该项目实现了带动画效果的多选框#xff0c;鼠标放在上面或者选中都会呈现炫酷的动画效果#xff0c;demo演示如下#xff1a; 项目部分代码如下所示#xff1a; #ifndef LINEARCHECKBOX_H #define LINEARCHECKBOX_H#include QCheckBox …1、概述 源码放在文章末尾 该项目实现了带动画效果的多选框鼠标放在上面或者选中都会呈现炫酷的动画效果demo演示如下 项目部分代码如下所示 #ifndef LINEARCHECKBOX_H #define LINEARCHECKBOX_H#include QCheckBox #include QPropertyAnimation #include QPainter #include QPainterPath #include QDebugclass AniCheckBox : public QCheckBox {Q_OBJECTQ_PROPERTY(double hover_prog READ getHoverProg WRITE setHoverProg)Q_PROPERTY(double part_prog READ getPartProg WRITE setPartProg)Q_PROPERTY(double check_prog READ getCheckProg WRITE setCheckProg) public:AniCheckBox(QWidget* parent nullptr);void setForeColor(QColor c);protected:void paintEvent(QPaintEvent *) override;void enterEvent(QEvent *e) override;void leaveEvent(QEvent *e) override;bool hitButton(const QPoint ) const override;virtual void checkStateChanged(int state);virtual void drawBox(QPainter painter, QRectF rect);QPropertyAnimation* startAnimation(const QByteArray property, double begin, double end, int duration 500, QEasingCurve curve QEasingCurve::OutQuad);protected:double getHoverProg() const;void setHoverProg(double prog);double getPartProg() const;void setPartProg(double prog);double getCheckProg() const;void setCheckProg(double prog);protected:int boxSide 0; // 选择框边长0为自适应QColor foreColor QColor(#2753ff); // 前景颜色double hoverProg 0; // 鼠标移上去的进度double partyProg 0; // 部分选中的进度double checkProg 0; // 选中的进度 };#endif // LINEARCHECKBOX_H #include anicheckbox.hAniCheckBox::AniCheckBox(QWidget *parent) : QCheckBox(parent) {setCursor(Qt::PointingHandCursor);connect(this, QCheckBox::stateChanged, this, [](int state) {// qInfo() 状态变化 static_castQt::CheckState(state);checkStateChanged(state);}); }void AniCheckBox::setForeColor(QColor c) {this-foreColor c; }void AniCheckBox::paintEvent(QPaintEvent *) {// QCheckBox::paintEvent(e);QPainter painter(this);// painter.setRenderHint(QPainter::Antialiasing, true);QRectF rect;double textLeft;if (boxSide 0){// 自适应大小优先一行文字大小其次按比例const double fixedProp 0.8; // 默认比例QFontMetricsF fm(painter.font());double side fm.height(); // 一行文字的高度if (side this-height() * fixedProp)side this-height() * fixedProp;double margin side / 2;rect QRectF(margin, (height() - side) / 2, side, side);textLeft rect.right() margin;}else{// 固定大小double margin (this-height() - boxSide) / 2;rect QRectF(margin, margin, boxSide, boxSide);textLeft rect.right() margin;}// 绘制选择框painter.save();drawBox(painter, rect);painter.restore();// 绘制文字painter.save();painter.drawText(QRectF(textLeft, 0, this-width() - textLeft, this-height()), this-text(), Qt::AlignVCenter | Qt::AlignLeft);painter.restore(); }void AniCheckBox::enterEvent(QEvent *e) {QCheckBox::enterEvent(e);startAnimation(hover_prog, getHoverProg(), 1); }void AniCheckBox::leaveEvent(QEvent *e) {QCheckBox::leaveEvent(e);startAnimation(hover_prog, getHoverProg(), 0); }bool AniCheckBox::hitButton(const QPoint ) const {return true; }void AniCheckBox::checkStateChanged(int state) {if (state Qt::Unchecked){startAnimation(check_prog, getCheckProg(), 0, 800, QEasingCurve::OutBounce);}else if (state Qt::PartiallyChecked){}else if (state Qt::Checked){startAnimation(check_prog, getCheckProg(), 1, 500, QEasingCurve::OutBack);} }void AniCheckBox::drawBox(QPainter painter, QRectF rect) {painter.setPen(foreColor);painter.setRenderHint(QPainter::Antialiasing, true);// 绘制边缘方框和悬浮状态有关double radius 3;radius * (1 - hoverProg);painter.drawRoundedRect(rect, radius, radius);// 绘制选中状态int state this-checkState();double prop 0.6;prop * checkProg;rect QRectF(rect.left() rect.width() * (1 - prop) / 2,rect.top() rect.height() * (1 - prop) / 2,rect.width() * prop,rect.height() * prop);QPainterPath path;path.addRoundedRect(rect, radius, radius);painter.fillPath(path, foreColor);if (state Qt::Unchecked){}else if (state Qt::PartiallyChecked){}else if (state Qt::Checked){} }QPropertyAnimation *AniCheckBox::startAnimation(const QByteArray property, double begin, double end, int duration, QEasingCurve curve) {QPropertyAnimation* ani new QPropertyAnimation(this, property);ani-setStartValue(begin);ani-setEndValue(end);ani-setDuration(duration);ani-setEasingCurve(curve);connect(ani, SIGNAL(finished()), ani, SLOT(deleteLater()));connect(ani, SIGNAL(valueChanged(const QVariant)), this, SLOT(update()));ani-start();return ani; }double AniCheckBox::getHoverProg() const {return hoverProg; }void AniCheckBox::setHoverProg(double prog) {this-hoverProg prog; }double AniCheckBox::getPartProg() const {return partyProg; }void AniCheckBox::setPartProg(double prog) {this-partyProg prog; }double AniCheckBox::getCheckProg() const {return checkProg; }void AniCheckBox::setCheckProg(double prog) {this-checkProg prog; } 源码下载
http://www.hkea.cn/news/14482777/

相关文章:

  • asp access 做网站宜昌外贸网站建设优化推广
  • 网站网页的书签怎么做许昌网站推广公司
  • 怎么创建网站快捷方式到桌面有人有片资源吗免费高清
  • 深圳官方网站制作成都房地产交易中心官网
  • 北京建网站公司有哪些网址导航网址大全
  • 成都网站制作和建设东莞市公租房申请网站-建设网
  • 扒完网站代码之后怎么做模板图片分类展示网站源码
  • 有关网站开发的国外书籍外包做网站赚钱么
  • 搜索网站的软件有哪些公司建网站怎么做
  • 宁波市有哪些网站建设公司可以注销的网站
  • 建立html网站在线做网站视频在线观看
  • 成都微信网站设计数据需求 网站建设
  • 广东哪有做网赌网站飞机网页设计实训报告
  • 第一章 网站建设基本概述小程序制作软件
  • 查询备案网站kocool网站开发
  • 温州企业网站建设要多少钱怎么给网站有一字做标记
  • 湖州童装网站怎样评价一个网站做的好与不好
  • 网站关键词排名优化软件长沙优化科技有限公司
  • 泉州网站优化排名制作个人网站的软件
  • 单页面淘宝客网站delphi 实现网站开发
  • 怎样建设网站公司wordpress tag 别名
  • 集约化网站数据库建设规范女做受网站
  • 360建站平台网站搭建需要什么
  • 专业的企业网站设计与编辑分销平台网站建设
  • 厦门集团网站设计公司程序员招聘求职的网站
  • 哈尔滨制作网站价格微信公众号人工咨询电话
  • 网站乱码解决办法wordpress 改错域名
  • 网站域名过期了怎么办有哪些做农产品的网站
  • 湖南网站建站系统哪家好小程序登录不上去
  • 做外贸一般看什么网站宁阳网页设计