diff --git a/source/designerView.cpp b/source/designerView.cpp index 3b28a4a..7b4d97d 100644 --- a/source/designerView.cpp +++ b/source/designerView.cpp @@ -19,8 +19,8 @@ DesignerView::~DesignerView() void DesignerView::initialize() { //去掉QGraphicsView自带滚动条 - //setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - //setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); //设置背景 setStyleSheet("background-image: url(:/images/checkerboard.png);\ padding: 0px; \ diff --git a/source/graphicsItem/graphicsPolygonItem.cpp b/source/graphicsItem/graphicsPolygonItem.cpp index b95b5cf..b5f7409 100644 --- a/source/graphicsItem/graphicsPolygonItem.cpp +++ b/source/graphicsItem/graphicsPolygonItem.cpp @@ -50,8 +50,10 @@ void GraphicPolygonItem::updateCoordinate() //当执行了resie和editShape函 { prepareGeometryChange(); //更改图形绘制节点坐标,让图形中心和原点对齐 + QPolygonF ptsOnScene = mapToScene(m_points); //所有操作都在scene坐标系下进行,然后在还原至item坐标系,否则会有跳转 for(int i=0; isetPen(m_pen); painter->setBrush(m_brush); painter->drawPolygon(m_points); - //绘制变换原点 - QPointF originPoint = transformOriginPoint(); - painter->setBrush(Qt::red); - painter->drawEllipse(originPoint, 4, 4); if (option->state & QStyle::State_Selected) //是选中状态,绘制选中框 { @@ -77,6 +75,11 @@ void GraphicPolygonItem::paint(QPainter* painter, const QStyleOptionGraphicsItem painter->setPen(QPen(QColor(70,70,70), nPenWidth, Qt::DashLine)); //蓝色的外框 painter->setBrush(Qt::NoBrush); painter->drawRect(m_boundingRect_selected); + + //绘制变换原点 + QPointF originPoint = transformOriginPoint(); + painter->setBrush(Qt::red); + painter->drawEllipse(originPoint, 4, 4); } } diff --git a/source/graphicsItem/graphicsRectItem.cpp b/source/graphicsItem/graphicsRectItem.cpp index 43f439e..569a1cc 100644 --- a/source/graphicsItem/graphicsRectItem.cpp +++ b/source/graphicsItem/graphicsRectItem.cpp @@ -104,10 +104,6 @@ void GraphicsRectItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* else painter->drawRect(m_boundingRect); - //绘制变换原点 - QPointF originPoint = transformOriginPoint(); - painter->setBrush(Qt::red); - painter->drawEllipse(originPoint, 4, 4); if (option->state & QStyle::State_Selected) //是选中状态,绘制选中框 { @@ -115,6 +111,11 @@ void GraphicsRectItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* painter->setPen(QPen(QColor(70,70,70), nPenWidth, Qt::DashLine)); //蓝色的外框 painter->setBrush(Qt::NoBrush); painter->drawRect(m_boundingRect_selected); + + //绘制变换原点 + QPointF originPoint = transformOriginPoint(); + painter->setBrush(Qt::red); + painter->drawEllipse(originPoint, 4, 4); } } diff --git a/source/mainwindow.cpp b/source/mainwindow.cpp index 1cab47c..1c3491a 100644 --- a/source/mainwindow.cpp +++ b/source/mainwindow.cpp @@ -66,7 +66,7 @@ void CMainWindow::initializeDockUi() // Set central widget m_pDrawingPanel = new DrawingPanel(); DesignerScene* designerScene = m_pDrawingPanel->getDesignerScene(); - connect(designerScene, SIGNAL((QGraphicsItem*)), this, SLOT(onSignal_addItem(QGraphicsItem*))); + connect(designerScene, SIGNAL(signalAddItem(QGraphicsItem*)), this, SLOT(onSignal_addItem(QGraphicsItem*))); CDockWidget* CentralDockWidget = new CDockWidget("CentralWidget"); CentralDockWidget->setWidget(m_pDrawingPanel); auto* CentralDockArea = DockManager->setCentralWidget(CentralDockWidget);