PlotterHMI/datafile/view/mygraphicsscene.cpp
2024-02-06 14:19:53 +08:00

86 lines
2.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "mygraphicsscene.h"
MyGraphicsScene::MyGraphicsScene()
{
m_myGraphicsItem= new MyGraphicsItem();
}
MyGraphicsScene::~MyGraphicsScene()
{
if(m_myGraphicsItem != NULL)
{
delete m_myGraphicsItem;
m_myGraphicsItem = NULL;
}
}
void MyGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)
{
return QGraphicsScene::mousePressEvent(mouseEvent);
}
void MyGraphicsScene::mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent)
{
return QGraphicsScene::mouseMoveEvent(mouseEvent);
}
void MyGraphicsScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent)
{
return QGraphicsScene::mouseReleaseEvent(mouseEvent);
}
void MyGraphicsScene::createScene(Marker marker)
{
m_myGraphicsItem->creatPicture(marker);
//绘制留边
this->setSceneRect(0,0,m_myGraphicsItem->boundingRect().width()+DRAWMARGINS,m_myGraphicsItem->boundingRect().height()+DRAWMARGINS);
//如果scene未超过graphicsView的范围图形就是居中显示的
this->addItem(m_myGraphicsItem);
m_myGraphicsItem->moveBy(DRAWMARGINS/2.0,DRAWMARGINS/2.0);//item居中显示
}
void MyGraphicsScene::createScene(QPixmap pixmap)
{
m_myGraphicsItem->creatPicture(pixmap);
//绘制留边
this->setSceneRect(0,0,m_myGraphicsItem->boundingRect().width()+DRAWMARGINS,m_myGraphicsItem->boundingRect().height()+DRAWMARGINS);
//如果scene未超过graphicsView的范围图形就是居中显示的
this->addItem(m_myGraphicsItem);
m_myGraphicsItem->moveBy(DRAWMARGINS/2.0,DRAWMARGINS/2.0);//item居中显示
}
void MyGraphicsScene::cleanScene()
{
if(m_myGraphicsItem != NULL)
{
this->removeItem(m_myGraphicsItem);
}
}
QPicture MyGraphicsScene::getPicture(Marker marker,int penWidth)
{
QPicture pic;
if(m_myGraphicsItem != NULL)
{
pic = m_myGraphicsItem->getPicture(marker,penWidth);
}
return pic;
}
void MyGraphicsScene::swithScene(QPicture pic)
{
if(m_myGraphicsItem != NULL)
{
m_myGraphicsItem->setPicture(pic);
this->addItem(m_myGraphicsItem);
}
}
void MyGraphicsScene::ReflushBlockScene(QPoint p)
{
if(m_myGraphicsItem != NULL)
{
m_myGraphicsItem->reflushBlockPos(p);
}
}