QGraphicsView 实现动画实验

本文通过一个实验展示了如何使用QGraphicsView创建动画,实验内容是让100个item在scene中进行斜线运动并实现反弹效果,以此评估其对CPU资源的消耗。实验结果显示,该动画导致CPU运行负荷较高。
摘要由CSDN通过智能技术生成

在做桌面雪花飘落效果的动画时, 想用QGraphicsView来实现动画, 这里做了个实验.

本实验是在scene里添加100个item, 实现简单的斜线运动, 碰到边缘后反弹的效果. 主要是测试其消耗资源情况.

实验结果: 高CPU运行!

下面是代码主要代码:

窗口构造函数, 主要是布局, 创建QGraphicsView和QGraphicsScene对象, 添加100个items

Widget::Widget(QWidget *parent) :
	QWidget(parent),
	ui(new Ui::Widget)
{
	ui->setupUi(this);
	this->setMinimumSize(800, 600);
	pixmap.load(":/blueBall.png");
	if(pixmap.isNull())
	{
		qDebug()<<"not found image: ':/blueBall.png'";
		qApp->quit();
	}

	scene = new QGraphicsScene(this);
	scene->setBackgroundBrush(QBrush(Qt::gray));
	scene->setSceneRect(-400, -300, 800, 600);

	for(int i = 0; i < 100; i++)
	{
		item = new ImageItem(&pixmap);
		item->setPos(i, i);
		scene->addItem(item);
	}

	view = new QGraphicsView(this);
	view->setScene(scene);
	QHBoxLayout *layout = new QHBoxLayout(this);
	layout->addWidget(view);
	se
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值