岩心图片右键操作

This commit is contained in:
crqiqi77 2026-04-28 17:56:35 +08:00
parent fb9b3d4b5f
commit 944a16725d
2 changed files with 51 additions and 37 deletions

View File

@ -889,7 +889,7 @@ void QMyCustomPlot::mousePressEvent(QMouseEvent *event)
{ {
if (event->button() == Qt::LeftButton) if (event->button() == Qt::LeftButton)
{ {
if (m_strLineName == "RESULT") if (m_strLineName == "RESULT" || m_strLineName == "IMAGE_DATA")
{ {
if (m_bEditor) if (m_bEditor)
{ {
@ -985,7 +985,7 @@ void QMyCustomPlot::mousePressEvent(QMouseEvent *event)
void QMyCustomPlot::mouseMoveEvent(QMouseEvent *event) void QMyCustomPlot::mouseMoveEvent(QMouseEvent *event)
{ {
if (m_strLineName == "RESULT") if (m_strLineName == "RESULT" || m_strLineName == "IMAGE_DATA")
{ {
if (mMousePress) if (mMousePress)
{ {
@ -1138,7 +1138,14 @@ void QMyCustomPlot::mouseMoveEvent(QMouseEvent *event)
} }
else else
{ {
this->setCursor(Qt::ArrowCursor); QCursor currentCursor = this->cursor();
if(currentCursor == Qt::CrossCursor)
{
}
else
{
this->setCursor(Qt::ArrowCursor);
}
} }
// if (mMousePress) { // if (mMousePress) {
// auto items = selectedItems(); // auto items = selectedItems();
@ -1180,7 +1187,7 @@ void QMyCustomPlot::mouseMoveEvent(QMouseEvent *event)
void QMyCustomPlot::mouseReleaseEvent(QMouseEvent *event) void QMyCustomPlot::mouseReleaseEvent(QMouseEvent *event)
{ {
if (m_strLineName == "RESULT") if (m_strLineName == "RESULT" || m_strLineName == "IMAGE_DATA")
{ {
if (mMousePress) if (mMousePress)
{ {
@ -1955,9 +1962,17 @@ void QMyCustomPlot::onEditImage()
if (dlg.exec() == QDialog::Accepted) // 点击“确定”按钮 if (dlg.exec() == QDialog::Accepted) // 点击“确定”按钮
{ {
imagePath = dlg.getImagePath(); imagePath = dlg.getImagePath();
m_pAddLine1->setVisible(false);
m_pAddLine2->setVisible(false);
mMousePress = false;
replot();
} }
else else
{ {
m_pAddLine1->setVisible(false);
m_pAddLine2->setVisible(false);
mMousePress = false;
replot();
return; return;
} }
@ -3210,11 +3225,12 @@ bool QMyCustomPlot::SaveToSLFImage()
isrun=false; isrun=false;
return false; return false;
} }
iIndex=logio->Open_Set_Table(m_strLineName.toStdString().c_str(),GUJING_OBJECT,4,
"NO,SDEP,EDEP,RESULT", iIndex=logio->Open_Set_Table(m_strLineName.toStdString().c_str(),0,6,
"4,4,4,4",//字段长度 "NO,SDEP,EDEP,LEFT,WIDTH,IMAGE",
"1,4,4,1",//字段类型 "4,4,4,4,4,100",//字段长度
"0,0,0,2");//字段备注 "1,4,4,4,4,6",//字段类型
"0,0,0,0,0,0");//字段备注
isfirst=true; isfirst=true;
} }
logio->SetTableRecordCount(iIndex,m_mapDraggable_Image.size()); logio->SetTableRecordCount(iIndex,m_mapDraggable_Image.size());
@ -3251,18 +3267,22 @@ bool QMyCustomPlot::SaveToSLFImage()
float fSDepth = -tmpRange.upper; float fSDepth = -tmpRange.upper;
if(fSDepth == listSDepth[i])//按顺序写入 if(fSDepth == listSDepth[i])//按顺序写入
{ {
memset(&m_Result,0,sizeof(GUJING_DATA)); memset(&m_Result,0,sizeof(IMAGE_DATA));
m_Result.StartDepth = -tmpRange.upper; m_Result.StartDepth = -tmpRange.upper;
m_Result.EndDepth = -tmpRange.lower; m_Result.EndDepth = -tmpRange.lower;
m_Result.Order=i+1;
// 拷贝字符串到数组,长度为数组长度-1留1位存'\0'结束符)
strncpy(m_Result.Image, pDraggableRect->getMResult().toLocal8Bit().constData(), sizeof(m_Result.Image) - 1);
// 手动添加结束符(确保字符串合法)
m_Result.Image[sizeof(m_Result.Image) - 1] = '\0';
m_Result.Left = static_cast<float>(pDraggableRect->getLeft()); m_Result.Left = static_cast<float>(pDraggableRect->getLeft());
m_Result.Order=i+1;
m_Result.Width = static_cast<float>(pDraggableRect->getWidth()); m_Result.Width = static_cast<float>(pDraggableRect->getWidth());
//写入 QString result = pDraggableRect->getMResult();
strcpy(m_Result.Image, result.toStdString().c_str());
logio->WriteTable(iIndex,i+1,&m_Result); logio->WriteTable(iIndex,i+1,&m_Result);
qDebug() << "===---======" << result;
qDebug() << "===---====-----------==" << m_Result.Image;
//写入
qDebug() << "Save: sizeof IMAGE_DATA=" << sizeof(IMAGE_DATA);
qDebug() << "Save: Image size=" << sizeof(m_Result.Image);
break; break;
} }
} }
@ -3304,7 +3324,7 @@ bool QMyCustomPlot::saveToSLFCorePhysics()
isrun=false; isrun=false;
return false; return false;
} }
iIndex=logio->Open_Set_Table(m_strLineName.toStdString().c_str(),GUJING_OBJECT,4, iIndex=logio->Open_Set_Table(m_strLineName.toStdString().c_str(),CORE_PHYSICS_OBJECT,4,
"NO,SDEP,EDEP,RESULT", "NO,SDEP,EDEP,RESULT",
"4,4,4,4",//字段长度 "4,4,4,4",//字段长度
"1,4,4,1",//字段类型 "1,4,4,1",//字段类型
@ -3341,7 +3361,7 @@ bool QMyCustomPlot::saveToSLFCorePhysics()
float fSDepth = -pDraggableRect->m_right_Hight; float fSDepth = -pDraggableRect->m_right_Hight;
if(fSDepth == listSDepth[i])//按顺序写入 if(fSDepth == listSDepth[i])//按顺序写入
{ {
memset(&m_Result,0,sizeof(GUJING_DATA)); memset(&m_Result,0,sizeof(Slf_CORE_PHYSICS));
m_Result.Order = i + 1; m_Result.Order = i + 1;
m_Result.CoreValue = -pDraggableRect->getCpCoreValue(); m_Result.CoreValue = -pDraggableRect->getCpCoreValue();
m_Result.Depth = -pDraggableRect->m_right_Hight; m_Result.Depth = -pDraggableRect->m_right_Hight;
@ -4029,21 +4049,10 @@ bool QMyCustomPlot::LoadFromIMAGE_SLF(QString strSlfName, QString strLineName)
for(int i=0;i<count;i++) { for(int i=0;i<count;i++) {
memset(m_Result,0,sizeof(IMAGE_DATA)); memset(m_Result,0,sizeof(IMAGE_DATA));
logio->ReadTable(iIndex,i+1,m_Result); logio->ReadTable(iIndex,i+1,m_Result);
// WelllogItem* item=AddItem(m_Result->StartDepth,m_Result->EndDepth);
// if(!item) continue;
// OGWordsResultItem* pResult = dynamic_cast<OGWordsResultItem*>(item);
//logio->GetTableFieldData(iIndex,(char*)FieldName.toStdString().c_str(),m_Result->Image,i+1);
// SetCharacters(m_Result->Words);
// fontColor=QColor(0,0,0,255);
// backgroundColor=QColor(255,255,255,255);
// wordfont.setFamily("黑体");
// wordfont.setPointSize(10);
//显示图片Image //显示图片Image
QString filename=QString::fromLocal8Bit(m_Result->Image); QString filename=QString::fromLocal8Bit(m_Result->Image);
qDebug() << "=--==-=-------------------------" << filename;
int pos=filename.lastIndexOf("\\"); int pos=filename.lastIndexOf("\\");
int pos1=filename.lastIndexOf("/"); int pos1=filename.lastIndexOf("/");
if(pos1>pos) pos=pos1; if(pos1>pos) pos=pos1;
@ -4053,6 +4062,10 @@ bool QMyCustomPlot::LoadFromIMAGE_SLF(QString strSlfName, QString strLineName)
filename=""; filename="";
} }
} }
qDebug() << "Load: sizeof IMAGE_DATA=" << sizeof(IMAGE_DATA);
qDebug() << "Load: Image size=" << sizeof(m_Result->Image);
this->addImageToPlot(-m_Result->EndDepth, -m_Result->StartDepth, filename, static_cast<double>(m_Result->Left), static_cast<double>(m_Result->Width)); this->addImageToPlot(-m_Result->EndDepth, -m_Result->StartDepth, filename, static_cast<double>(m_Result->Left), static_cast<double>(m_Result->Width));
} }
logio->CloseTable(iIndex); logio->CloseTable(iIndex);
@ -8577,6 +8590,7 @@ void QMyCustomPlot::onCloseEditResult()
//取消框选 //取消框选
this->setInteractions(QCP::iSelectLegend | QCP::iSelectPlottables); this->setInteractions(QCP::iSelectLegend | QCP::iSelectPlottables);
this->setSelectionRectMode(QCP::srmNone); this->setSelectionRectMode(QCP::srmNone);
this->setCursor(Qt::ArrowCursor);
} }
void QMyCustomPlot::DeleteItemGroup() void QMyCustomPlot::DeleteItemGroup()

View File

@ -448,13 +448,13 @@ void TransparentDraggableImage::onMouseMove(QMouseEvent *event)
// 无论哪种模式(只要不是 DragNone都显示参考线 // 无论哪种模式(只要不是 DragNone都显示参考线
if(mDragMode == DragReferenceOnly) if(mDragMode == DragReferenceOnly)
{ {
mDragLine->point1->setCoords(mDragStartY, 0); // mDragLine->point1->setCoords(mDragStartY, 0);
mDragLine->point2->setCoords(mDragStartY, 1); // mDragLine->point2->setCoords(mDragStartY, 1);
mDragLine->setVisible(true); // mDragLine->setVisible(true);
mDragLine2->point1->setCoords(currentY, 0); // mDragLine2->point1->setCoords(currentY, 0);
mDragLine2->point2->setCoords(currentY, 1); // mDragLine2->point2->setCoords(currentY, 1);
mDragLine2->setVisible(true); // mDragLine2->setVisible(true);
mPlot->replot(); // mPlot->replot();
return; return;
} }