QGraphics绘图的步骤

QGraphics绘图的步骤

构建图元项QGraphicsItem
继承QGraphicsPixmapItem
① 继承QObject(元对象系统QProperty,设置位置点,位置名称在状态机的属性设置中使用)
② 设置设备缓存setCacheMode(DeviceCoordinateCache);
设置图元的位置,X,Y,Z立体位置setZValue,setOffset
继承QGraphicsWidget
① 设置徘徊事件setAcceptHoverEvent(true);
② 重写边界QRect boungingRect() override
③ 重写绘制过程 QPainterPath shape() override
④ 重写绘制 paint(QPainter painter,const QStyleOptionGrahpicsItem *option,QWidget widget);
⑤ 重写鼠标压的事件mousePressEvent(QGrahicsSceneMouseEvent *);
发送压下去信号,更新绘制paint()
加入父图元项,设置父图元的位置
① 子图元位置是相对于父图元位置的
② 设置父图元的大小比例setTransform(QTransfrom::fromScale(1.1,1.1),true);
构建场景QGraphicsScene
设置场景大小scene(-100,-100,200,200);
图元加入场景scene.addItem()
构建视图GraphicsView
设置视图(&scene)
设置背景setBackground、背景缓存setCacheMode、场景、视口ViewPort、渲染提示RendHint
继承视图GraphicsView
重写resizeEvent(),fitInView(senceRect(),Qt::KeepAspectRatio);
构建状态机QStateMachine
创建状态QState
设置状态属性assignProperty(item,”pos”,QPoint());
加入父状态QState
初始化状态setInitalState()

加入状态机QStateMachine
状态机构建触发条件QTranslation addTransition(item,click,state);
构建动画animation(并行,串行)
动画组添加至触发条件对象addAnimation(group);
状态机启动

你可能感兴趣的:(qt,青少年编程)