From 8497086c750897926868e267f04c8ee2d1d140fd Mon Sep 17 00:00:00 2001 From: jiayulong Date: Thu, 4 Jun 2026 11:24:23 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BA=95=E5=A3=81=E5=8F=96=E5=BF=83=E6=A8=AA?= =?UTF-8?q?=E5=90=91=E5=8F=AF=E4=BB=A5=E5=A4=9A=E4=B8=AA=202.=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E2=80=9C=E5=A4=9A=E9=81=93=E8=B6=85=E5=87=BA=E5=B1=8F?= =?UTF-8?q?=E5=B9=95=EF=BC=8C=E5=87=BA=E7=8E=B0=E6=A8=AA=E5=90=91=E6=BB=9A?= =?UTF-8?q?=E5=8A=A8=E6=9D=A1=EF=BC=8C=E7=82=B9=E4=BA=95=E5=B1=8F=E5=B9=95?= =?UTF-8?q?=E8=B7=B3=E5=88=B0=E5=89=8D=E9=9D=A2=E9=97=AE=E9=A2=98=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logPlus/TransparentDraggableSwallCore.cpp | 51 ++++++++++++++--------- logPlus/mainwindowcurve.cpp | 2 + 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/logPlus/TransparentDraggableSwallCore.cpp b/logPlus/TransparentDraggableSwallCore.cpp index 7b9312f..eb38e5c 100644 --- a/logPlus/TransparentDraggableSwallCore.cpp +++ b/logPlus/TransparentDraggableSwallCore.cpp @@ -546,6 +546,7 @@ void TransparentDraggableSwallCore::onMousePress(QMouseEvent *event) //double y = mPlot->yAxis->pixelToCoord(event->pos().y()); double y = mPlot->xAxis->pixelToCoord(event->pos().y());//x轴展示深度 + double x = mPlot->yAxis->pixelToCoord(event->pos().x()); QCPRange currentRange = getRange(); @@ -558,7 +559,19 @@ void TransparentDraggableSwallCore::onMousePress(QMouseEvent *event) //else if(x >= currentRange.lower && x <= currentRange.upper) { else */ if(y >= currentRange.lower && y <= currentRange.upper) { - mDragMode = DragRect; + double lY1Tmp = mPlot->yAxis->range().lower; + double y1Tmp = mPlot->yAxis->coordToPixel(lY1Tmp); + + double leftTmp = mPlot->yAxis->pixelToCoord(y1Tmp+m_fLeftSpace);//mRect->topLeft->coords().y(); + double rightTmp = mRect->bottomRight->coords().y(); + if(x>=leftTmp && x<=rightTmp) + { + mDragMode = DragRect; + } + else { + mDragMode = DragNone; + return; + } } else { mDragMode = DragNone; @@ -638,25 +651,25 @@ void TransparentDraggableSwallCore::onMouseMove(QMouseEvent *event) newRange.lower = center - width/2; newRange.upper = center + width/2; - // 检查是否超出轴范围 - if(newRange.lower < getMyLower()) { - newRange.lower = getMyLower(); - newRange.upper = newRange.lower + width; - } - else if(newRange.upper > getMyUpper()) { - newRange.upper = getMyUpper(); - newRange.lower = newRange.upper - width; - } + // 检查是否超出轴范围(允许横向多个取心) +// if(newRange.lower < getMyLower()) { +// newRange.lower = getMyLower(); +// newRange.upper = newRange.lower + width; +// } +// else if(newRange.upper > getMyUpper()) { +// newRange.upper = getMyUpper(); +// newRange.lower = newRange.upper - width; +// } -// QCPRange axisRange = mPlot->xAxis->range(); -// if(newRange.lower < axisRange.lower) { -// newRange.lower = axisRange.lower; -// newRange.upper = newRange.lower + width; -// } -// else if(newRange.upper > axisRange.upper) { -// newRange.upper = axisRange.upper; -// newRange.lower = newRange.upper - width; -// } + QCPRange axisRange = mPlot->xAxis->range(); + if(newRange.lower < axisRange.lower) { + newRange.lower = axisRange.lower; + newRange.upper = newRange.lower + width; + } + else if(newRange.upper > axisRange.upper) { + newRange.upper = axisRange.upper; + newRange.lower = newRange.upper - width; + } break; } default: diff --git a/logPlus/mainwindowcurve.cpp b/logPlus/mainwindowcurve.cpp index 114fa14..e44cdbc 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -116,6 +116,8 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) : //我们让一列也可以滑动 ui->tableWidget_2->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); ui->tableWidget_2->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); + //防止编辑区域比较宽时,点击属性名称列或者赋值列导致页面左右动 + ui->tableWidget_2->setAutoScroll(false); connect(ui->tableWidget_2, SIGNAL(itemClicked(QTableWidgetItem*)), this, SLOT(onItemClicked(QTableWidgetItem*)));