当前位置: 首页 > 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)分析法
  • 《小型支付商城系统》学习记录
  • 美股三大指数均收涨超1%,热门中概股强势拉升
  • 甘肃公布校园食品安全专项整治案例,有食堂涉腐败变质食物
  • 政府效率部效果不佳?马斯克有意寻求支持,含糊表态部门未来
  • 空间站第八批科学实验样品返抵地球并交付科学家
  • 前行中的“模速空间”:要攻克核心技术,也要成为年轻人创业首选地
  • 外交部:美方应在平等、尊重和互惠的基础上同中方开展对话