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

qt画一朵花

 希望大家的生活都更加美好,画一朵花送给大家

 

效果图

void FloatingArrowPubshButton::paintEvent(QPaintEvent *event)
{QPainter painter(this);painter.setRenderHints(QPainter::Antialiasing);QPen pen;pen.setColor("green");pen.setWidth(5);QBrush brush;brush.setColor("red");brush.setStyle(Qt::SolidPattern);painter.setPen(pen);painter.setBrush(brush);painter.drawLine(150, 300, 150, 500);int flowerCount{6};int radius{50};for(int i{0};i<flowerCount;i++){painter.save();painter.translate(150, 300);painter.rotate((360.0/flowerCount)*i);painter.drawEllipse(-radius/2,-radius,radius,radius*2);painter.restore();}}

2进一步提升1效果,让花在鼠标触碰到的时候发生变化

效果如下所示,点击后逐渐变成紫色

#include "floatingarrowpubshbutton.h"
#include <QPainter>
#include <QColor>
#include <QRect>
#include <QEvent>
FloatingArrowPubshButton::FloatingArrowPubshButton() {animation_normal=new QPropertyAnimation(this, "m_Tomeido");animation_normal->setDuration(300);animation_normal->setStartValue(m_Tomeido);animation_normal->setEndValue(255);animation_normal->setEasingCurve(QEasingCurve::Linear);// animation_parss=new QPropertyAnimation(this, "m_1");// animation_parss->setDuration(3000);// animation_parss->setStartValue(255);// animation_parss->setEndValue(100);// animation_parss->setEasingCurve(QEasingCurve::Linear);connect(animation_normal, &QPropertyAnimation::valueChanged, this, [this](const QVariant &value) {setTomeido(value.toInt());update();});// connect(animation_parss, &QPropertyAnimation::valueChanged, this, [this](const QVariant &value) {//     update();// });}void FloatingArrowPubshButton::setTomeido(int newTomeido)
{if (m_Tomeido == newTomeido)return;m_Tomeido = newTomeido;
}void FloatingArrowPubshButton::paintEvent(QPaintEvent *event)
{QPainter painter(this);painter.setRenderHints(QPainter::Antialiasing);qDebug()<<"m_Tomeido  "<<m_Tomeido;QPen pen;pen.setColor(QColor(255, 0,m_Tomeido,255 ));pen.setWidth(5);QBrush brush;brush.setColor(QColor(255, 0, 0, 127));brush.setStyle(Qt::SolidPattern);painter.setPen(pen);painter.setBrush(brush);painter.drawLine(150, 300, 150, 500);int flowerCount{6};int radius{50};for(int i{0};i<flowerCount;i++){painter.save();painter.translate(150, 300);painter.rotate((360.0/flowerCount)*i);painter.drawEllipse(-radius/2,-radius,radius,radius*2);painter.restore();}}bool FloatingArrowPubshButton::event(QEvent *e)
{if(e->type()==QEvent::Enter){animation_normal->setDirection(QPropertyAnimation::Forward);animation_normal->start();}if(e->type()==QEvent::Leave){animation_normal->setDirection(QPropertyAnimation::Backward);animation_normal->start();}return QPushButton::event(e);
}

 

 

相关文章:

  • elasticsearch7.15节点磁盘空间满了迁移数据到新磁盘
  • 【系统架构设计师】信息安全的概念
  • 每天学一个 Linux 命令(30):cut
  • OpenFeign 使用教程:从入门到实践
  • 线性代数-矩阵的秩
  • jvm-获取方法签名的方法
  • redis常用的五种数据类型
  • 如何使用UE Cesium插件实现网页端无算力负担访问?
  • Spring MVC 一个简单的多文件上传
  • 用自然语言指令构建机器学习可视化编程流程:InstructPipe 的创新探索
  • iTwin Tools函数拆解
  • Hiera:一款简洁的层次化视觉transformer
  • 基于SA模拟退火算法的车间调度优化matlab仿真,输出甘特图和优化收敛曲线
  • 楼宇自控怎样推动能源高效利用与建筑设备的科学管理
  • 【python】 循环语句(while)
  • 【Linux网络】应用层自定义协议与序列化
  • 10天学会嵌入式技术之51单片机-day-3
  • 文件的物理结构和逻辑结构的区分
  • 编译原理实验(四)———— LR(1)分析法
  • 《小型支付商城系统》学习记录
  • 俄乌就不打击民用基础设施释放对话信号
  • 广西通报桂林、贵港、玉林三市应对不力:管不住山火和露天焚烧
  • 成都市政府秘书长王忠诚调任遂宁市委副书记
  • 同济研究生开发AI二维码拿下大奖,新一代00后开发者掀起AI创业潮
  • 4月LPR保持不变:1年期3.1%,5年期以上3.6%
  • 南部战区海军新闻发言人发表谈话