在做桌面雪花飘落效果的动画时, 想用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