qt画一朵花

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

 

效果图

qt画一朵花_第1张图片

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

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

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

qt画一朵花_第2张图片

#include "floatingarrowpubshbutton.h"
#include 
#include 
#include 
#include 
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  "<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);
}

 

 

你可能感兴趣的:(qt,开发语言)