用vs2015和qt5实现飞舞的蝴蝶

本文介绍了如何使用Visual Studio 2015和Qt5框架来创建一个名为"Butterfly"的应用程序,该程序以QMainWindow为基类,并展示了在代码中如何引用图片的绝对路径来实现飞舞的蝴蝶效果。
摘要由CSDN通过智能技术生成

新建Qt Widgets Application,项目名为"Butterfly",基类选择"QMainWindow"。
Butterfly.h

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_Butterfly.h"
#include<QObject>
#include<QtWidgets/QGraphicsItem>
#include<QPainter>
#include<QtWidgets/QGraphicsScene>
#include<QtWidgets/QGraphicsView>
class Butterfly : public QObject,public QGraphicsItem
{
   
    Q_OBJECT

public:
    explicit Butterfly(QObject *parent = Q_NULLPTR);
	void timerEvent(QTimerEvent *);
	QRectF boundingRect()  const;
signals:
public slots:
protected:
	void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);  //重绘函数
private:
	bool up;
	QPixmap pix_up;  //用于表示两幅蝴蝶的图片
	QPixmap pix_down;
	qreal angle;
    Ui::ButterflyClass ui;  //这个没啥用,可写可不写
};

Butterfly.cpp

#include "Butterfly.h"
#include <math.h>
const static double PI = 3.1416;
Butterfly::Butterfly(QObject *parent)
    : QObject(parent)
{
   
	up = true;  //给标志蝴蝶翅膀位置的变量赋初值
	pix_up.load("D:/coding/qtPractice/Butterfly/Butterfly/x64/Debug/up.jpg");  //调用QPixmap的load()函数加载所用到的图片
	pix_down.load("D:/coding/qtPractice/Butterfly/Butterfly/x64/Debug/down.jpg");
	startTimer(100);  //启动定时器,并设置时间间隔为100毫秒
   // ui.setupUi(this);
}
QRectF Butterfly::boundingRect()  const
{
   
	qreal adjust = 2;
	return QRectF(-pix_up.width() / 2 - adjust, -pix_up.height
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值