1.井壁取心横向可以多个 2.解决“多道超出屏幕,出现横向滚动条,点井屏幕跳到前面问题”

This commit is contained in:
jiayulong 2026-06-04 11:24:23 +08:00
parent 813cf49acf
commit 8497086c75
2 changed files with 34 additions and 19 deletions

View File

@ -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:

View File

@ -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*)));