This commit is contained in:
crqiqi77 2026-03-26 09:17:56 +08:00
commit 6cc5be18c3
10 changed files with 347 additions and 14 deletions

View File

@ -2692,7 +2692,7 @@ void PropertyWidget::initProperty(FormInfo *formInfo)
//固井结论 //固井结论
this->initGujingProperty(formInfo); this->initGujingProperty(formInfo);
} }
if (m_strLineName == "IMAGE_DATA") else if (m_strLineName == "IMAGE_DATA")
{ {
// 岩心图片 // 岩心图片
this->initImageProperty(formInfo); this->initImageProperty(formInfo);

View File

@ -12,6 +12,7 @@
#include "PickFrac.h" #include "PickFrac.h"
#include "DrawNrad.h" #include "DrawNrad.h"
#include "formline.h" #include "formline.h"
#include "PropertyWidget.h"
//以下参数从配置文件读取 //以下参数从配置文件读取
extern int g_iIndex; extern int g_iIndex;
@ -2056,6 +2057,15 @@ void FormDraw::DisplayLine_One(QJsonObject lineObjInfo)
bDrawSymmetry = value.toBool(); bDrawSymmetry = value.toBool();
} }
} }
//
QCPScatterStyle::ScatterShape pointStyle=QCPScatterStyle::ssCircle;//数据点,符号类型,圆,三角等
if (lineObjInfo.contains("pointStyle"))
{
QJsonValue value = lineObjInfo.value("pointStyle");
if (value.isDouble()) {
pointStyle = (QCPScatterStyle::ScatterShape)value.toInt();
}
}
QString folderPath = GetLogdataPath(); QString folderPath = GetLogdataPath();
folderPath = folderPath + g_prjname; folderPath = folderPath + g_prjname;
@ -2099,6 +2109,8 @@ void FormDraw::DisplayLine_One(QJsonObject lineObjInfo)
else{ else{
listOtherProperty.append("0"); listOtherProperty.append("0");
} }
//
listOtherProperty.append(QString::number(pointStyle));
//新建曲线 //新建曲线
s_AddLine_Property(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName, s_AddLine_Property(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName,
@ -2794,6 +2806,12 @@ void FormDraw::s_delLine(QString strUuid, QString strWellName, QString strTrackN
{ {
childWidget->deleteLater(); // 安排控件的删除,稍后执行 childWidget->deleteLater(); // 安排控件的删除,稍后执行
m_listLineName.removeOne(strLineName); m_listLineName.removeOne(strLineName);
//属性清空
PropertyService()->InitCurrentViewInfo();
//取消所有选中单元格
emit CallManage::getInstance()->sig_Raise(m_strUuid, "", "", "", "", 0, "");
//break; //break;
} }
} }
@ -2840,6 +2858,12 @@ void FormDraw::s_delWave(QString strUuid, QString strWellName, QString strTrackN
{ {
childWidget->deleteLater(); // 安排控件的删除,稍后执行 childWidget->deleteLater(); // 安排控件的删除,稍后执行
m_listWaveName.removeOne(strLineName); m_listWaveName.removeOne(strLineName);
//属性清空
PropertyService()->InitCurrentViewInfo();
//取消所有选中单元格
emit CallManage::getInstance()->sig_Raise(m_strUuid, "", "", "", "", 0, "");
//break; //break;
} }
} }
@ -2885,6 +2909,12 @@ void FormDraw::s_delTableLine(QString strUuid, QString strWellName, QString strT
{ {
childWidget->deleteLater(); // 安排控件的删除,稍后执行 childWidget->deleteLater(); // 安排控件的删除,稍后执行
m_listTableName.removeOne(strLineName); m_listTableName.removeOne(strLineName);
//属性清空
PropertyService()->InitCurrentViewInfo();
//取消所有选中单元格
emit CallManage::getInstance()->sig_Raise(m_strUuid, "", "", "", "", 0, "");
//break; //break;
} }
} }
@ -4184,7 +4214,9 @@ void FormDraw::initForm(QMyCustomPlot *widget, QString strSlfName, QString strLi
bool bDrawGan = false; // 杆状 bool bDrawGan = false; // 杆状
bool bDrawPoint = false; // 点状 bool bDrawPoint = false; // 点状
bool bDrawSymmetry = false; // 绘制对称曲线 bool bDrawSymmetry = false; // 绘制对称曲线
if(listOtherProperty.size()>=7) QCPScatterStyle::ScatterShape pointStyle=QCPScatterStyle::ssCircle;//数据点,符号类型,圆,三角等
if(listOtherProperty.size()>=8)
{ {
if(listOtherProperty[3]=="DrawLine") if(listOtherProperty[3]=="DrawLine")
{ {
@ -4221,6 +4253,8 @@ void FormDraw::initForm(QMyCustomPlot *widget, QString strSlfName, QString strLi
{ {
bDrawSymmetry = false; bDrawSymmetry = false;
} }
//
pointStyle = (QCPScatterStyle::ScatterShape)listOtherProperty[7].toInt();
} }
//最大值,最小值 //最大值,最小值
@ -4321,6 +4355,7 @@ void FormDraw::initForm(QMyCustomPlot *widget, QString strSlfName, QString strLi
widget->m_bDrawGan = bDrawGan; widget->m_bDrawGan = bDrawGan;
widget->m_bDrawPoint = bDrawPoint; widget->m_bDrawPoint = bDrawPoint;
widget->m_bDrawSymmetry = bDrawSymmetry; widget->m_bDrawSymmetry = bDrawSymmetry;
widget->m_pointStyle = pointStyle;
addRandomGraph(widget, x, y, strSlfName, strLineName, strAliasName, strUnit, addRandomGraph(widget, x, y, strSlfName, strLineName, strAliasName, strUnit,
newLeftScale, newRightScale, strScaleType, lineColor, width, lineStyle, listOtherProperty); newLeftScale, newRightScale, strScaleType, lineColor, width, lineStyle, listOtherProperty);
@ -7780,6 +7815,12 @@ void FormDraw::s_changeGujingLine(QString strUuid, QString strSlfName, QString s
if(m_listLineName.contains(strLineName)) if(m_listLineName.contains(strLineName))
{ {
m_listLineName.removeOne(strLineName); m_listLineName.removeOne(strLineName);
//属性清空
//PropertyService()->InitCurrentViewInfo();
//取消所有选中单元格
emit CallManage::getInstance()->sig_Raise(m_strUuid, "", "", "", "", 0, "");
//qDebug() << "FormDraw strLineName already exist! " << strLineName; //qDebug() << "FormDraw strLineName already exist! " << strLineName;
//return; //return;
} }
@ -7800,6 +7841,12 @@ void FormDraw::s_changeJiegutextLine(QString strUuid, QString strSlfName, QStrin
if(m_listLineName.contains(strLineName)) if(m_listLineName.contains(strLineName))
{ {
m_listLineName.removeOne(strLineName); m_listLineName.removeOne(strLineName);
//属性清空
//PropertyService()->InitCurrentViewInfo();
//取消所有选中单元格
emit CallManage::getInstance()->sig_Raise(m_strUuid, "", "", "", "", 0, "");
//qDebug() << "FormDraw strLineName already exist! " << strLineName; //qDebug() << "FormDraw strLineName already exist! " << strLineName;
//return; //return;
} }
@ -7820,6 +7867,12 @@ void FormDraw::s_changeLineName(QString strUuid, QString strSlfName, QString str
if(m_listLineName.contains(strLineName)) if(m_listLineName.contains(strLineName))
{ {
m_listLineName.removeOne(strLineName); m_listLineName.removeOne(strLineName);
//属性清空
//PropertyService()->InitCurrentViewInfo();
//取消所有选中单元格
emit CallManage::getInstance()->sig_Raise(m_strUuid, "", "", "", "", 0, "");
//qDebug() << "FormDraw strLineName already exist! " << strLineName; //qDebug() << "FormDraw strLineName already exist! " << strLineName;
//return; //return;
} }

View File

@ -267,6 +267,7 @@ QJsonObject FormInfo::makeJson()
rootObj["DrawGan"] = m_bDrawGan; // 杆状 rootObj["DrawGan"] = m_bDrawGan; // 杆状
rootObj["DrawPoint"] = m_bDrawPoint; // 点状 rootObj["DrawPoint"] = m_bDrawPoint; // 点状
rootObj["DrawSymmetry"] = m_bDrawSymmetry; // 绘制对称曲线 rootObj["DrawSymmetry"] = m_bDrawSymmetry; // 绘制对称曲线
rootObj["pointStyle"] = m_pointStyle;
//岩性填充 //岩性填充
rootObj["newFillMode"] = m_newFillMode; rootObj["newFillMode"] = m_newFillMode;

View File

@ -370,7 +370,7 @@ void FormTrack::s_addLine(QString strSlfName, QString strWellName, QString strTr
curveNameFont.fromString(listOtherProperty[2]); curveNameFont.fromString(listOtherProperty[2]);
formInfo->m_curveNameFont = curveNameFont; formInfo->m_curveNameFont = curveNameFont;
} }
if(listOtherProperty.size()>=7) if(listOtherProperty.size()>=8)
{ {
if(listOtherProperty[3]=="DrawLine") if(listOtherProperty[3]=="DrawLine")
{ {
@ -407,6 +407,11 @@ void FormTrack::s_addLine(QString strSlfName, QString strWellName, QString strTr
{ {
formInfo->m_bDrawSymmetry = false; formInfo->m_bDrawSymmetry = false;
} }
//
QCPScatterStyle::ScatterShape pointStyle=QCPScatterStyle::ssCircle;//数据点,符号类型,圆,三角等
pointStyle = (QCPScatterStyle::ScatterShape)listOtherProperty[7].toInt();
formInfo->m_pointStyle = pointStyle;
} }
//设置高度 //设置高度

View File

@ -4,6 +4,7 @@
#include "qtColorSchemeComboBox.h" #include "qtColorSchemeComboBox.h"
#include "geometryutils.h" #include "geometryutils.h"
#include "mainwindowcurve.h" #include "mainwindowcurve.h"
#include "PropertyWidget.h"
extern int g_iOneWidth; //道宽 extern int g_iOneWidth; //道宽
//extern int m_iY1; //extern int m_iY1;
@ -77,6 +78,28 @@ int FormWell::insertColumn(int nw)
return ncolCount; return ncolCount;
} }
//获取当前井的所有道名称
QStringList FormWell::getTrackNameList()
{
QStringList listTrackName;
int columnCount = ui->tableWidget->columnCount();//总列数
for(int i=0; i<columnCount; i++)
{
if( ui->tableWidget->cellWidget(0, i) != nullptr )
{
auto myWidget = ui->tableWidget->cellWidget(0, i);
FormTrackTop* fromTop = qobject_cast<FormTrackTop*>(myWidget);
if(fromTop)
{
listTrackName.append(fromTop->m_strTrackName);
}
}
}
return listTrackName;
}
QVector<QWidget *> FormWell::new_track(QStringList listdt, QString strTrackName) QVector<QWidget *> FormWell::new_track(QStringList listdt, QString strTrackName)
{ {
QVector<QWidget *> vec; QVector<QWidget *> vec;
@ -101,8 +124,9 @@ QVector<QWidget *> FormWell::new_track(QStringList listdt, QString strTrackName)
if(strTrackName.length() <= 0) if(strTrackName.length() <= 0)
{ {
//道名 //获取当前井的所有道名称
strTrackName = "" + QString::number(columnCount+1); QStringList listTrackName = getTrackNameList();
//
if(strType == "depthObject") if(strType == "depthObject")
strTrackName = "深度"; strTrackName = "深度";
else if(strType == "roseObject") else if(strType == "roseObject")
@ -111,6 +135,42 @@ QVector<QWidget *> FormWell::new_track(QStringList listdt, QString strTrackName)
strTrackName = "DCA检测"; strTrackName = "DCA检测";
else if(strType == "tdtObject") else if(strType == "tdtObject")
strTrackName = "TDT"; strTrackName = "TDT";
else{
strTrackName = "" + QString::number(columnCount+1);
}
//
if(listTrackName.size()>0)
{
if(listTrackName.contains(strTrackName))//道名已经存在,避免道重名
{
//道名
for(int i=2; i<100; i++)
{
//
if(strType == "depthObject")
strTrackName = "深度" + QString::number(columnCount+i);
else if(strType == "roseObject")
strTrackName = "玫瑰图" + QString::number(columnCount+i);
else if(strType == "dcaObject")
strTrackName = "DCA检测" + QString::number(columnCount+i);
else if(strType == "tdtObject")
strTrackName = "TDT" + QString::number(columnCount+i);
else{
strTrackName = "" + QString::number(columnCount+i);
}
//
if(listTrackName.contains(strTrackName))
{
continue;
}
else
{
break;
}
}
}
}
} }
FormTrack *formTrack = nullptr; FormTrack *formTrack = nullptr;
@ -640,7 +700,14 @@ void FormWell::slotDeleteSelectTrack()
if(iCurrentRow == 0) if(iCurrentRow == 0)
{ {
ui->tableWidget->removeColumn(iCurrentCol); ui->tableWidget->removeColumn(iCurrentCol);
resizeWindow(); resizeWindow();
//属性清空
PropertyService()->InitCurrentViewInfo();
//取消所有选中单元格
emit CallManage::getInstance()->sig_Raise(m_strUuid, "", "", "", "", 0, "");
} }
} }

View File

@ -51,6 +51,9 @@ public:
//设置道宽 //设置道宽
int setColWidth(int iCurrentCol, int iNewWidth); int setColWidth(int iCurrentCol, int iNewWidth);
//获取当前井的所有道名称
QStringList getTrackNameList();
public slots: public slots:
//void onTableColumnsInserted(const QModelIndex &parent, int first, int last); //void onTableColumnsInserted(const QModelIndex &parent, int first, int last);

View File

@ -197,7 +197,7 @@ void MainWindowCurve::initMainToolBar()
QIcon executeDepthShiftIcon(::GetImagePath()+"icon/ExecuteDepthShift.png"); QIcon executeDepthShiftIcon(::GetImagePath()+"icon/ExecuteDepthShift.png");
QIcon joindepthIcon(::GetImagePath()+"icon/joindepth.png"); QIcon joindepthIcon(::GetImagePath()+"icon/joindepth.png");
QIcon ModuleOpenIcon(::GetImagePath()+"icon/ModuleOne.png"); QIcon ModuleOpenIcon(::GetImagePath()+"icon/ModuleOne.png");
QIcon openFileIcon(":/image/open.png"); QIcon SaveAsPictureIcon(::GetImagePath()+"icon/SaveAsPicture.png");
QIcon runIcon(":/image/capacity.png"); QIcon runIcon(":/image/capacity.png");
QIcon debugIcon(":/image/anaysis.png"); QIcon debugIcon(":/image/anaysis.png");
QIcon loadIcon(":/image/export.png"); QIcon loadIcon(":/image/export.png");
@ -210,7 +210,7 @@ void MainWindowCurve::initMainToolBar()
QAction* m_executeDepthShiftAc = nullptr; //校深 QAction* m_executeDepthShiftAc = nullptr; //校深
QAction* m_joindepthAc = nullptr; //拼接 QAction* m_joindepthAc = nullptr; //拼接
QAction* m_ModuleOpenAc = nullptr; //处理方法 QAction* m_ModuleOpenAc = nullptr; //处理方法
//QAction* m_openAc = nullptr; //打开 QAction* m_SaveAsPictureAc = nullptr; //导出长图
// QAction* m_runAc = nullptr;// // QAction* m_runAc = nullptr;//
// QAction* m_debugAc = nullptr; // // QAction* m_debugAc = nullptr; //
// QAction* m_loadAc = nullptr; //加载 // QAction* m_loadAc = nullptr; //加载
@ -222,7 +222,7 @@ void MainWindowCurve::initMainToolBar()
m_executeDepthShiftAc = new QAction(executeDepthShiftIcon, "校深", this); m_executeDepthShiftAc = new QAction(executeDepthShiftIcon, "校深", this);
m_joindepthAc = new QAction(joindepthIcon, "拼接", this); m_joindepthAc = new QAction(joindepthIcon, "拼接", this);
m_ModuleOpenAc = new QAction(ModuleOpenIcon, "处理方法", this); m_ModuleOpenAc = new QAction(ModuleOpenIcon, "处理方法", this);
// m_runAc = new QAction(runIcon, "设置井", this); m_SaveAsPictureAc = new QAction(SaveAsPictureIcon, "导出长图", this);
// m_debugAc = new QAction(debugIcon, "撤销", this); // m_debugAc = new QAction(debugIcon, "撤销", this);
// m_loadAc = new QAction(loadIcon, "重做", this); // m_loadAc = new QAction(loadIcon, "重做", this);
//m_openAc = new QAction(openFileIcon, "打开", this); //m_openAc = new QAction(openFileIcon, "打开", this);
@ -238,7 +238,8 @@ void MainWindowCurve::initMainToolBar()
ui->mainToolBar->addAction(m_joindepthAc); ui->mainToolBar->addAction(m_joindepthAc);
ui->mainToolBar->addAction(m_ModuleOpenAc); ui->mainToolBar->addAction(m_ModuleOpenAc);
// ui->mainToolBar->addAction(m_runAc); //ui->mainToolBar->addAction(m_SaveAsPictureAc);//导出长图
// ui->mainToolBar->addAction(m_debugAc); // ui->mainToolBar->addAction(m_debugAc);
// ui->mainToolBar->addAction(m_loadAc); // ui->mainToolBar->addAction(m_loadAc);
//ui->mainToolBar->addAction(m_openAc); //ui->mainToolBar->addAction(m_openAc);
@ -251,10 +252,10 @@ void MainWindowCurve::initMainToolBar()
connect(m_joindepthAc, &QAction::triggered, this, &MainWindowCurve::s_ExecuteMerge); connect(m_joindepthAc, &QAction::triggered, this, &MainWindowCurve::s_ExecuteMerge);
connect(m_ModuleOpenAc, &QAction::triggered, this, &MainWindowCurve::s_ModuleOpen); connect(m_ModuleOpenAc, &QAction::triggered, this, &MainWindowCurve::s_ModuleOpen);
connect(m_SaveAsPictureAc, &QAction::triggered, this, &MainWindowCurve::s_SaveAsPicture);
// connect(m_grepAc, &QAction::triggered, this, &MainWindow::s_Risize); // connect(m_grepAc, &QAction::triggered, this, &MainWindow::s_Risize);
// connect(m_compileAc, &QAction::triggered, this, &MainWindow::s_AddOne); // connect(m_compileAc, &QAction::triggered, this, &MainWindow::s_AddOne);
// connect(m_runAc, &QAction::triggered, this, &MainWindow::s_SaveImage);
// connect(m_debugAc, &QAction::triggered, this, &MainWindow::s_DrawImg); // connect(m_debugAc, &QAction::triggered, this, &MainWindow::s_DrawImg);
// connect(m_loadAc, &QAction::triggered, this, &MainWindow::s_DrawLine); // connect(m_loadAc, &QAction::triggered, this, &MainWindow::s_DrawLine);
//connect(m_openAc, &QAction::triggered, this, &MainWindowCurve::s_Open); //connect(m_openAc, &QAction::triggered, this, &MainWindowCurve::s_Open);
@ -2320,6 +2321,14 @@ void MainWindowCurve::s_ModuleOpen()
m_pParentWin->setModuleOpenOrClose(); m_pParentWin->setModuleOpenOrClose();
} }
//导出长图
void MainWindowCurve::s_SaveAsPicture()
{
//指标体系图
QPixmap pPixmap = ui->tableWidget_2->grab(QRect(0, 0, ui->tableWidget_2->width()*2, ui->tableWidget_2->height()*2));
pPixmap.save("d:\\3.png", "png");
}
//void MainWindowCurve::s_Open(QString fileFull) //void MainWindowCurve::s_Open(QString fileFull)
//{ //{

View File

@ -243,7 +243,7 @@ public slots:
void s_ExecuteDepthShift(); //校深 void s_ExecuteDepthShift(); //校深
void s_ExecuteMerge(); //拼接 void s_ExecuteMerge(); //拼接
void s_ModuleOpen(); //处理算法 void s_ModuleOpen(); //处理算法
//void s_Open(QString fileFull);//打开 void s_SaveAsPicture(); //导出长图
}; };

View File

@ -625,6 +625,10 @@ void QtProjectWidgets::loadWellTree(QTreeWidgetItem *parent, QString fileFull, Q
//初始化树形控件中的右键菜单 //初始化树形控件中的右键菜单
void QtProjectWidgets::initMenu() void QtProjectWidgets::initMenu()
{ {
m_action_Paste = new QAction("粘贴", ui->treeWidget);
m_action_Paste ->setIcon(QIcon(GetImagePath() + "icon/Copy.png")); // 设置图标":/image/u174.png"
connect(m_action_Paste, SIGNAL(triggered()), this, SLOT(onPasteSelObject()));
//根节点(项目名称)-右键菜单 //根节点(项目名称)-右键菜单
_menuRoot = new QMenu(ui->treeWidget); _menuRoot = new QMenu(ui->treeWidget);
initRootTreeMenu(_menuRoot, ui->treeWidget); initRootTreeMenu(_menuRoot, ui->treeWidget);
@ -657,6 +661,14 @@ void QtProjectWidgets::initMenu()
_menuTableFolder = new QMenu(ui->treeWidget); _menuTableFolder = new QMenu(ui->treeWidget);
initTableFolderTreeMenu(_menuTableFolder, ui->treeWidget); initTableFolderTreeMenu(_menuTableFolder, ui->treeWidget);
_menuCurveFolder = new QMenu(ui->treeWidget);
initCurveFolderTreeMenu(_menuCurveFolder, ui->treeWidget);
_menuParCardFolder = new QMenu(ui->treeWidget);
initParCardFolderTreeMenu(_menuParCardFolder, ui->treeWidget);
_menuWaveFolder = new QMenu(ui->treeWidget);
initWaveFolderTreeMenu(_menuWaveFolder, ui->treeWidget);
// //评估方案-右键菜单 // //评估方案-右键菜单
// _menuEvaluate = new QMenu(ui->treeWidget); // _menuEvaluate = new QMenu(ui->treeWidget);
// initEvaluateTreeMenu(_menuEvaluate, ui->treeWidget); // initEvaluateTreeMenu(_menuEvaluate, ui->treeWidget);
@ -708,6 +720,16 @@ void QtProjectWidgets::initParameterCardTreeMenu(QMenu *menu, QTreeWidget *treeW
action_CardObject->setIcon(QIcon(GetImagePath() + "icon/Sheet.png")); // 设置图标":/image/u174.png" action_CardObject->setIcon(QIcon(GetImagePath() + "icon/Sheet.png")); // 设置图标":/image/u174.png"
connect(action_CardObject, SIGNAL(triggered(bool)), this, SLOT(onShowParameterCard(bool))); connect(action_CardObject, SIGNAL(triggered(bool)), this, SLOT(onShowParameterCard(bool)));
menu->addAction(action_CardObject); menu->addAction(action_CardObject);
QAction* action_Copy = new QAction("复制", treeWidget);
action_Copy->setIcon(QIcon(GetImagePath() + "icon/Copy.png")); // 设置图标":/image/u174.png"
connect(action_Copy, SIGNAL(triggered()), this, SLOT(onCopySelObject()));
menu->addAction(action_Copy);
QAction* action_Delete = new QAction("删除", treeWidget);
action_Delete->setIcon(QIcon(GetImagePath() + "icon/Delete.png")); // 设置图标":/image/u174.png"
connect(action_Delete, SIGNAL(triggered()), this, SLOT(onDeleteObject()));
menu->addAction(action_Delete);
} }
//初始化曲线对象(AC、BS...)-右键菜单 //初始化曲线对象(AC、BS...)-右键菜单
@ -722,6 +744,16 @@ void QtProjectWidgets::initCurveObjectTreeMenu(QMenu *menu, QTreeWidget *treeWid
m_action_DepthShift->setIcon(QIcon(GetImagePath() + "icon/RigidDepthShifting.png")); // 设置图标 m_action_DepthShift->setIcon(QIcon(GetImagePath() + "icon/RigidDepthShifting.png")); // 设置图标
connect(m_action_DepthShift, SIGNAL(triggered(bool)), this, SLOT(onDepthShift(bool))); connect(m_action_DepthShift, SIGNAL(triggered(bool)), this, SLOT(onDepthShift(bool)));
menu->addAction(m_action_DepthShift); menu->addAction(m_action_DepthShift);
QAction* action_Copy = new QAction("复制", treeWidget);
action_Copy->setIcon(QIcon(GetImagePath() + "icon/Copy.png")); // 设置图标":/image/u174.png"
connect(action_Copy, SIGNAL(triggered()), this, SLOT(onCopySelObject()));
menu->addAction(action_Copy);
QAction* action_Delete = new QAction("删除", treeWidget);
action_Delete->setIcon(QIcon(GetImagePath() + "icon/Delete.png")); // 设置图标":/image/u174.png"
connect(action_Delete, SIGNAL(triggered()), this, SLOT(onDeleteObject()));
menu->addAction(action_Delete);
} }
//初始化波列对象-右键菜单 //初始化波列对象-右键菜单
@ -736,6 +768,16 @@ void QtProjectWidgets::initWaveObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidg
action_DepthShift->setIcon(QIcon(GetImagePath() + "icon/RigidDepthShifting.png")); // 设置图标 action_DepthShift->setIcon(QIcon(GetImagePath() + "icon/RigidDepthShifting.png")); // 设置图标
connect(action_DepthShift, SIGNAL(triggered(bool)), this, SLOT(onDepthShift(bool))); connect(action_DepthShift, SIGNAL(triggered(bool)), this, SLOT(onDepthShift(bool)));
menu->addAction(action_DepthShift); menu->addAction(action_DepthShift);
QAction* action_Copy = new QAction("复制", treeWidget);
action_Copy->setIcon(QIcon(GetImagePath() + "icon/Copy.png")); // 设置图标":/image/u174.png"
connect(action_Copy, SIGNAL(triggered()), this, SLOT(onCopySelObject()));
menu->addAction(action_Copy);
QAction* action_Delete = new QAction("删除", treeWidget);
action_Delete->setIcon(QIcon(GetImagePath() + "icon/Delete.png")); // 设置图标":/image/u174.png"
connect(action_Delete, SIGNAL(triggered()), this, SLOT(onDeleteObject()));
menu->addAction(action_Delete);
} }
//初始化表格对象-右键菜单 //初始化表格对象-右键菜单
@ -750,6 +792,16 @@ void QtProjectWidgets::initTableObjectTreeMenu(QMenu *menu, QTreeWidget *treeWid
action_DepthShift->setIcon(QIcon(GetImagePath() + "icon/RigidDepthShifting.png")); // 设置图标 action_DepthShift->setIcon(QIcon(GetImagePath() + "icon/RigidDepthShifting.png")); // 设置图标
connect(action_DepthShift, SIGNAL(triggered(bool)), this, SLOT(onDepthShift(bool))); connect(action_DepthShift, SIGNAL(triggered(bool)), this, SLOT(onDepthShift(bool)));
menu->addAction(action_DepthShift); menu->addAction(action_DepthShift);
QAction* action_Copy = new QAction("复制", treeWidget);
action_Copy->setIcon(QIcon(GetImagePath() + "icon/Copy.png")); // 设置图标":/image/u174.png"
connect(action_Copy, SIGNAL(triggered()), this, SLOT(onCopySelObject()));
menu->addAction(action_Copy);
QAction* action_Delete = new QAction("删除", treeWidget);
action_Delete->setIcon(QIcon(GetImagePath() + "icon/Delete.png")); // 设置图标":/image/u174.png"
connect(action_Delete, SIGNAL(triggered()), this, SLOT(onDeleteObject()));
menu->addAction(action_Delete);
} }
//初始化根节点(井名称)-右键菜单 //初始化根节点(井名称)-右键菜单
@ -793,6 +845,7 @@ void QtProjectWidgets::initSlfNameTreeMenu(QMenu *menu, QTreeWidget *treeWidget)
action_New->setIcon(QIcon(GetImagePath() + "icon/Edit.png")); // 设置图标 action_New->setIcon(QIcon(GetImagePath() + "icon/Edit.png")); // 设置图标
connect(action_New, SIGNAL(triggered(bool)), this, SLOT(onWelllogInformation())); connect(action_New, SIGNAL(triggered(bool)), this, SLOT(onWelllogInformation()));
menu->addAction(action_New); menu->addAction(action_New);
menu->addAction(m_action_Paste);
// //
QAction* action_DepthShift = new QAction("深度移动", treeWidget); QAction* action_DepthShift = new QAction("深度移动", treeWidget);
@ -808,8 +861,24 @@ void QtProjectWidgets::initTableFolderTreeMenu(QMenu *menu, QTreeWidget *treeWid
action_New->setIcon(QIcon(GetImagePath() + "icon/CreateTable.png")); // 设置图标 action_New->setIcon(QIcon(GetImagePath() + "icon/CreateTable.png")); // 设置图标
connect(action_New, SIGNAL(triggered(bool)), this, SLOT(onCreateNewTable())); connect(action_New, SIGNAL(triggered(bool)), this, SLOT(onCreateNewTable()));
menu->addAction(action_New); menu->addAction(action_New);
}
menu->addAction(m_action_Paste);
}
//初始化根节点(曲线表目录)-右键菜单
void QtProjectWidgets::initCurveFolderTreeMenu(QMenu *menu, QTreeWidget *treeWidget)
{
menu->addAction(m_action_Paste);
}
//初始化根节点(参数卡目录)-右键菜单
void QtProjectWidgets::initParCardFolderTreeMenu(QMenu *menu, QTreeWidget *treeWidget)
{
menu->addAction(m_action_Paste);
}
//初始化根节点(波列目录)-右键菜单
void QtProjectWidgets::initWaveFolderTreeMenu(QMenu *menu, QTreeWidget *treeWidget)
{
menu->addAction(m_action_Paste);
}
//新建项目 //新建项目
void QtProjectWidgets::onNewProject(bool checked) void QtProjectWidgets::onNewProject(bool checked)
{ {
@ -1069,6 +1138,92 @@ void QtProjectWidgets::onCreateNewTable()
} }
} }
//删除(曲线、表格、波列、参数卡)
void QtProjectWidgets::onDeleteObject()
{
CLogIO *logio=new CLogIO;
if(!logio->Open(m_strSlfName.toStdString().c_str(),CLogIO::modeReadWrite)) {
delete logio;
return;
}
logio->DeleteObject(m_strCurveObjectName.toLocal8Bit().data());
logio->Close();
foreach(QTreeWidgetItem *pItem, ui->treeWidget->selectedItems())
{
QTreeWidgetItem *parentItem = pItem->parent()->parent(); // 上两层目录是井次
RefreshWellRoundTree(parentItem);
break;
}
}
void QtProjectWidgets::onCopySelObject() // 复制
{
m_strCopySlfName = m_strSlfName; // 当前复制的对象Slf文件
m_strCopyCurveObjectName = m_strCurveObjectName; // 当前复制的对象名
}
void QtProjectWidgets::onPasteSelObject() // 粘贴
{
if (m_strCopySlfName == m_strSlfName)
{
CLogIO *logio=new CLogIO;
if(!logio->Open(m_strSlfName.toStdString().c_str(),CLogIO::modeReadWrite)) {
delete logio;
return;
}
char buf[1000];
int i=1;
while(1) {
sprintf(buf,"%s_%d",m_strCopyCurveObjectName.toStdString().c_str(),i++);
if (0>logio->FindObjectName(buf))
break;
}
logio->CopyObject(m_strCopyCurveObjectName.toStdString().c_str(), buf);
logio->Close();
delete logio;
foreach(QTreeWidgetItem *pItem, ui->treeWidget->selectedItems())
{
QTreeWidgetItem *parentItem = pItem/*->parent()*/; // 上一层目录是井次
if (parentItem && m_strSlfName == parentItem->data(0, Qt::UserRole+1).toString())
RefreshWellRoundTree(parentItem);
parentItem = parentItem = pItem->parent();
if (parentItem && m_strSlfName == parentItem->data(0, Qt::UserRole+1).toString())
RefreshWellRoundTree(parentItem);
break;
}
return;
}
}
//刷新井次树
void QtProjectWidgets::RefreshWellRoundTree(QTreeWidgetItem *parentItem)
{
if (parentItem && m_strSlfName == parentItem->data(0, Qt::UserRole+1).toString())
{
// qDeleteAll(parentItem->takeChildren());
QTreeWidgetItem *pWellItem = parentItem->parent();
QString Wellname = parentItem->text(0);
// parentItem->setExpanded(false);
loadWellTree(parentItem->parent(), m_strSlfName, Wellname);
pWellItem->removeChild(parentItem);
pWellItem->setExpanded(true);
int WellCount = pWellItem->childCount();
for (int i = 0; i < WellCount; ++i)
{
QTreeWidgetItem *childItem = pWellItem->child(i);
childItem->setExpanded(true);
int childCount = childItem->childCount();
for (int j = 0; j < childCount; ++j)
{
childItem->child(j)->setExpanded(true);
}
}
}
}
void QtProjectWidgets::onEditWelllogRound() void QtProjectWidgets::onEditWelllogRound()
{ {
QTreeWidgetItem *wellItem = *ui->treeWidget->selectedItems().begin(); QTreeWidgetItem *wellItem = *ui->treeWidget->selectedItems().begin();
@ -1298,7 +1453,29 @@ void QtProjectWidgets::onItemClicked(QTreeWidgetItem* item, int index)
popMenu = _menuTableFolder; popMenu = _menuTableFolder;
m_strSlfName = item->parent()->data(0, Qt::UserRole+1).toString();//从父节点井次获取slf m_strSlfName = item->parent()->data(0, Qt::UserRole+1).toString();//从父节点井次获取slf
} }
else if (strTreeTag == "ParameterCard")
{
//表格数据-右键菜单
popMenu = _menuParCardFolder;
m_strSlfName = item->parent()->data(0, Qt::UserRole+1).toString();//从父节点井次获取slf
}
else if (strTreeTag == "Wave")
{
//波列数据-右键菜单
popMenu = _menuWaveFolder;
m_strSlfName = item->parent()->data(0, Qt::UserRole+1).toString();//从父节点井次获取slf
}
else if (strTreeTag == "Curve")
{
//曲线数据-右键菜单
popMenu = _menuTableFolder;
m_strSlfName = item->parent()->data(0, Qt::UserRole+1).toString();//从父节点井次获取slf
}
if (m_strCopySlfName != m_strSlfName)
m_action_Paste->setVisible(false);
else
m_action_Paste->setVisible(true);
// //
if (qApp->mouseButtons() == Qt::RightButton) // 只针对鼠标右键,弹出菜单 if (qApp->mouseButtons() == Qt::RightButton) // 只针对鼠标右键,弹出菜单
{ {

View File

@ -58,7 +58,11 @@ public slots:
void onDepthShift_Well(bool checked = false); //深度移动 void onDepthShift_Well(bool checked = false); //深度移动
//表格数据 根节点 //表格数据 根节点
void onCreateNewTable(); //创建新表 void onCreateNewTable(); //创建新表
//删除(曲线、表格、波列、参数卡)
void onDeleteObject(); // 删除
void onCopySelObject(); // 复制
void onPasteSelObject(); // 粘贴
void RefreshWellRoundTree(QTreeWidgetItem *parentItem); // 刷新井次树
//向左侧树图,追加固井结论表格 //向左侧树图,追加固井结论表格
void s_AddGujingToTree(QString strSlfName, QString strWellName, QString strLineName); void s_AddGujingToTree(QString strSlfName, QString strWellName, QString strLineName);
@ -77,7 +81,11 @@ public:
QMenu *_menuWellName; //井名 QMenu *_menuWellName; //井名
QMenu *_menuSlfName; //井次 QMenu *_menuSlfName; //井次
QMenu *_menuTableFolder; //表目录 QMenu *_menuTableFolder; //表目录
QMenu *_menuCurveFolder; //曲线目录
QMenu *_menuParCardFolder; //参数卡目录
QMenu *_menuWaveFolder; //波列目录
QAction* m_action_Paste; //黏贴
//根节点(项目名称)-右键菜单 //根节点(项目名称)-右键菜单
QAction* m_action_New; QAction* m_action_New;
QAction* m_action_Open; QAction* m_action_Open;
@ -91,6 +99,9 @@ public:
QString m_strSlfName; QString m_strSlfName;
QString m_strCurveObjectName; QString m_strCurveObjectName;
QString m_strCopySlfName; // 当前复制的对象Slf文件
QString m_strCopyCurveObjectName; // 当前复制的对象名
public: public:
void loadIndexSysTree(QTreeWidgetItem *parent, QString fileFull, QString prjname); void loadIndexSysTree(QTreeWidgetItem *parent, QString fileFull, QString prjname);
void loadWellTree(QTreeWidgetItem *parent, QString fileFull, QString parentWellname); void loadWellTree(QTreeWidgetItem *parent, QString fileFull, QString parentWellname);
@ -116,6 +127,13 @@ public:
void initSlfNameTreeMenu(QMenu *menu, QTreeWidget *treeWidget); void initSlfNameTreeMenu(QMenu *menu, QTreeWidget *treeWidget);
//初始化根节点(表目录)-右键菜单 //初始化根节点(表目录)-右键菜单
void initTableFolderTreeMenu(QMenu *menu, QTreeWidget *treeWidget); void initTableFolderTreeMenu(QMenu *menu, QTreeWidget *treeWidget);
//初始化根节点(曲线表目录)-右键菜单
void initCurveFolderTreeMenu(QMenu *menu, QTreeWidget *treeWidget);
//初始化根节点(参数卡目录)-右键菜单
void initParCardFolderTreeMenu(QMenu *menu, QTreeWidget *treeWidget);
//初始化根节点(波列目录)-右键菜单
void initWaveFolderTreeMenu(QMenu *menu, QTreeWidget *treeWidget);
private: private:
QMap<QString, QList<QString> > m_qmapWellFiles; QMap<QString, QList<QString> > m_qmapWellFiles;