From 2cd9e236d530bd0e33da0c5201b7cc1275b7a0c0 Mon Sep 17 00:00:00 2001 From: duanshengchao <519970194@qq.com> Date: Wed, 28 Aug 2024 16:38:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=88=E6=97=8B=E8=BD=AC?= =?UTF-8?q?=E5=86=8D=E7=BC=A9=E6=94=BE=E7=9A=84=E8=B7=B3=E8=B7=83=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/designerView.cpp | 4 ++-- source/graphicsItem/graphicsPolygonItem.cpp | 13 ++++++++----- source/graphicsItem/graphicsRectItem.cpp | 9 +++++---- source/mainwindow.cpp | 2 +- 4 files changed, 16 insertions(+), 12 deletions(-) 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);