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

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);
}

 

 

http://www.xdnf.cn/news/937.html

相关文章:

  • ​001-内网穿透工具
  • 20250421在荣品的PRO-RK3566开发板的Android13下使用io命令控制GPIO
  • ArcGIS、ArcMap查看.shp文件时属性表中文乱码
  • 软件工程师中级考试-上午知识点总结(下)
  • Linux内核开发常用函数
  • Git创建空分支并推送到远程仓库
  • 大模型中超参数TopK是什么
  • 密码明文放在请求体是否有安全隐患?
  • 前端实战-AJAX
  • Spark(19)Yarn-tool接口
  • 力扣热题100——矩阵
  • 安卓的桌面 launcher是什么
  • 【AI】SpringAI 第三弹:接入通用大模型平台
  • CSS字体
  • 什么是SPA,SPA与MAP区别
  • redis-7 安装
  • 机器学习中,什么叫监督学习?什么叫非监督学习?
  • MCP(Minecraft Coder Pack)完全指南:从入门到精通
  • JavaScript 渲染内容爬取:Puppeteer 入门
  • PCIE Spec ---Base Address Registers
  • 每日算法-250421
  • 应急物资管理系统DW-S300|构建应急物资保障体系
  • Netdata 监控多台服务器
  • 树莓派5+L298N控制电机
  • Linux:进程控制
  • 《Learning Langchain》阅读笔记5-RAG(1)
  • 《作用域大冒险:从闭包到内存泄漏的终极探索》
  • 文字、语音、图片、视频四大领域的大模型、AI工具及其对比的详细分析及表格总结
  • 【Python】如何查找电脑上的Python解释器
  • C++编程指南38 - 使用 static_assert 检查类是否符合某个 concept