#include <QGraphicsLineItem>
#include <QGraphicsTextItem>
#include <QGraphicsPixmapItem>
#include <QGraphicsItemAnimation> //动画
#include <QTimeLine>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
QGraphicsLineItem *lineItem;
QGraphicsTextItem *textItem; //因为要设置属性,所以把它单独提出来
QGraphicsPixmapItem *pixmapItem;
_view = new QGraphicsView(this);
_view->setBackgroundBrush(QBrush(Qt::gray)); //设置_view的背景色
_view->setScene(_scene = new QGraphicsScene);
_scene->addItem(lineItem = new QGraphicsLineItem(QLineF(0, 0, 100, 100)));
_scene->addItem(textItem = new QGraphicsTextItem("hello world"));
textItem->setPos(QPointF(100, 100));
textItem->setFont(QFont("aaa", 50, 100, true)); //设置字体
_scene->addItem(pixmapItem = new QGraphicsPixmapItem(QPixmap("../test1.bmp")));
pixmapItem->setScale(0.2);
pixmapItem->setFlag(QGraphicsItem::ItemIsMovable);
QGraphicsItemAnimation *animation = new QGraphicsItemAnimation;
animation->setItem(pixmapItem);
QTimeLine *timeLine = new QTimeLine(3000); //3ms动一次
timeLine->setLoopCount(100); //设置循环次数
animation->setTimeLine(timeLine); //怎么动
animation->setTranslationAt(1, 200, 200); //step, dx, dy
timeLine->start(); //开始循环
}
void Widget::resizeEvent(QResizeEvent *)
{
_view->setGeometry(QRect(QPoint(0, 0), size())); //设置_view的大小为widget的大小
}