可视视图选中井后,支持从获取到当前井对应的slf文件路径

This commit is contained in:
jiayulong 2025-12-30 15:30:32 +08:00
parent df9db57d8c
commit fcd9c3a685
4 changed files with 149 additions and 90 deletions

View File

@ -368,10 +368,20 @@ void FormWell::s_NewCol(QStringList listdt)
QJsonObject FormWell::makeJson()
{
//
QString slffilename=QString("");
int ind=m_strSlfName.lastIndexOf('\\');
int ind2=m_strSlfName.lastIndexOf('/');
if(ind2>ind) ind=ind2;
if(ind>-1) {
slffilename=m_strSlfName.mid(ind+1);
}
// 创建根对象
QJsonObject rootObj;
//
rootObj["WellName"] = m_strWellName;
rootObj["SlfName"] = slffilename;
// 创建JSON数组并填充数据
QJsonArray subcaseArray;

View File

@ -28,6 +28,7 @@ private:
public:
QString m_strUuid;
QString m_strWellName;
QString m_strSlfName="";
public:
QJsonObject makeJson();

View File

@ -103,7 +103,7 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) :
connect(this, SIGNAL(sig_NewTrackChangeWidth(QString)), this, SLOT(s_NewTrackChangeWidth(QString)));
connect(this, SIGNAL(sig_NewWell(QString)), this, SLOT(s_NewWell(QString)));
//connect(this, SIGNAL(sig_NewWell(QString, QString)), this, SLOT(s_NewWell(QString, QString)));
connect(CallManage::getInstance(), SIGNAL(sig_mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*)));
connect(CallManage::getInstance(), SIGNAL(sig_changeScale(int)), this, SLOT(s_changeScale(int)));
@ -524,7 +524,7 @@ QJsonObject MainWindowCurve::makeJson()
return rootObj;
}
void MainWindowCurve::s_NewWell(QString strWellName)
void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName)
{
//因为tableWidget需要提前规定好行数与列数
int rowcount = 2; //总行数
@ -561,6 +561,7 @@ void MainWindowCurve::s_NewWell(QString strWellName)
ui->tableWidget_2->setRowHeight(i, 100);
//
QTableWidgetItem* item = new QTableWidgetItem(strWellName);
item->setData(Qt::UserRole + 1, strSlfName);
item->setFlags(item->flags() & (~Qt::ItemIsEditable));
item->setTextAlignment(Qt::AlignCenter); //设置文本居中
ui->tableWidget_2->setItem(i, columnCount, item);
@ -585,6 +586,7 @@ void MainWindowCurve::s_NewWell(QString strWellName)
//
FormWell *widgetWell = new FormWell(this, strWellName);
widgetWell->m_strUuid = m_strUuid;
widgetWell->m_strSlfName = strSlfName;
ui->tableWidget_2->setCellWidget(i, columnCount, widgetWell);
//
@ -613,15 +615,25 @@ void MainWindowCurve::mousePressEvent(QMouseEvent *event)
void MainWindowCurve::s_Raise(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName)
{
//选中了曲线置顶
//取消表格选中状态
ui->tableWidget_2->clearSelection();
if(m_strUuid == strUuid)
{
//
}
else {
//选中了曲线置顶
//取消表格选中状态
ui->tableWidget_2->clearSelection();
}
}
void MainWindowCurve::onItemClicked(QTableWidgetItem* item)
{
qDebug() << "MainWindowCurve onItemClicked";
//曲线
QString strWellName = item->text();
//QString strSlfName = item->data(Qt::UserRole+1).toString();
PropertyService()->initWellProperty();
//取消所有选中单元格
emit CallManage::getInstance()->sig_Raise(m_strUuid, "", "", "", "");
@ -664,29 +676,29 @@ void MainWindowCurve::s_NewDepth()
{
int column = -1;
int nW = 100;
QString strSlfName = "";
QString strLeft = m_leftWidgets->getLeftTreeString();
if(strLeft.length() > 0)
{
QStringList list = strLeft.split("#@@#");//QString字符串分割函数
if (list.size() > 3)
{
strSlfName = list[0];
QString strWellName = list[1];
// QString strLineName = list[2];
// QString strType = list[3];
// QString strSlfName = "";
// QString strLeft = m_leftWidgets->getLeftTreeString();
// if(strLeft.length() > 0)
// {
// QStringList list = strLeft.split("#@@#");//QString字符串分割函数
// if (list.size() > 3)
// {
// strSlfName = list[0];
// QString strWellName = list[1];
// // QString strLineName = list[2];
// // QString strType = list[3];
if(!m_listWell.contains(strWellName))
{
//井没创建,创建井+道+曲线
//新建井
s_NewWell(strWellName);
m_listWell.push_back(strWellName);
// if(!m_listWell.contains(strWellName))
// {
// //井没创建,创建井+道+曲线
// //新建井
// s_NewWell(strWellName, strSlfName);
// m_listWell.push_back(strWellName);
column= 0;
}
}
}
// column= 0;
// }
// }
// }
if(ui->tableWidget_2->columnCount()==0)
{
@ -716,6 +728,8 @@ void MainWindowCurve::s_NewDepth()
}
QString strWellName = ui->tableWidget_2->item(0, column)->text();
//直接从选中的井获取data记录slf路径
QString strSlfName = ui->tableWidget_2->item(0, column)->data(Qt::UserRole+1).toString();
//设置列宽
ui->tableWidget_2->setColumnWidth(column, iWidth+nW+8);
@ -735,29 +749,29 @@ void MainWindowCurve::s_pinLvAc()
{
int column = -1;
int nW = 160;
QString strSlfName = "";
QString strLeft = m_leftWidgets->getLeftTreeString();
if(strLeft.length() > 0)
{
QStringList list = strLeft.split("#@@#");//QString字符串分割函数
if (list.size() > 3)
{
strSlfName = list[0];
QString strWellName = list[1];
// QString strLineName = list[2];
// QString strType = list[3];
// QString strSlfName = "";
// QString strLeft = m_leftWidgets->getLeftTreeString();
// if(strLeft.length() > 0)
// {
// QStringList list = strLeft.split("#@@#");//QString字符串分割函数
// if (list.size() > 3)
// {
// strSlfName = list[0];
// QString strWellName = list[1];
// // QString strLineName = list[2];
// // QString strType = list[3];
if(!m_listWell.contains(strWellName))
{
//井没创建,创建井+道+曲线
//新建井
s_NewWell(strWellName);
m_listWell.push_back(strWellName);
// if(!m_listWell.contains(strWellName))
// {
// //井没创建,创建井+道+曲线
// //新建井
// s_NewWell(strWellName, strSlfName);
// m_listWell.push_back(strWellName);
column= 0;
}
}
}
// column= 0;
// }
// }
// }
if(ui->tableWidget_2->columnCount()==0)
{
@ -787,6 +801,8 @@ void MainWindowCurve::s_pinLvAc()
}
QString strWellName = ui->tableWidget_2->item(0, column)->text();
//直接从选中的井获取data记录slf路径
QString strSlfName = ui->tableWidget_2->item(0, column)->data(Qt::UserRole+1).toString();
//设置列宽
ui->tableWidget_2->setColumnWidth(column, iWidth+nW+8);
@ -804,16 +820,16 @@ void MainWindowCurve::s_pinLvAc()
void MainWindowCurve::s_NewGanZhuangTu()
{
QString strSlfName = "";
QString strLeft = m_leftWidgets->getLeftTreeString();
if(strLeft.length() > 0)
{
QStringList list = strLeft.split("#@@#");//QString字符串分割函数
if (list.size() > 3)
{
strSlfName = list[0];
}
}
// QString strSlfName = "";
// QString strLeft = m_leftWidgets->getLeftTreeString();
// if(strLeft.length() > 0)
// {
// QStringList list = strLeft.split("#@@#");//QString字符串分割函数
// if (list.size() > 3)
// {
// strSlfName = list[0];
// }
// }
if(ui->tableWidget_2->columnCount()==0)
{
@ -837,6 +853,9 @@ void MainWindowCurve::s_NewGanZhuangTu()
}
QString strWellName = ui->tableWidget_2->item(0, column)->text();
//直接从选中的井获取data记录slf路径
QString strSlfName = ui->tableWidget_2->item(0, column)->data(Qt::UserRole+1).toString();
int iWidth = ui->tableWidget_2->columnWidth(column);
int nW = 320;
@ -850,16 +869,16 @@ void MainWindowCurve::s_NewGanZhuangTu()
//井眼垮塌矢量图
void MainWindowCurve::s_Jykt()
{
QString strSlfName = "";
QString strLeft = m_leftWidgets->getLeftTreeString();
if(strLeft.length() > 0)
{
QStringList list = strLeft.split("#@@#");//QString字符串分割函数
if (list.size() > 3)
{
strSlfName = list[0];
}
}
// QString strSlfName = "";
// QString strLeft = m_leftWidgets->getLeftTreeString();
// if(strLeft.length() > 0)
// {
// QStringList list = strLeft.split("#@@#");//QString字符串分割函数
// if (list.size() > 3)
// {
// strSlfName = list[0];
// }
// }
if(ui->tableWidget_2->columnCount()==0)
{
@ -885,6 +904,9 @@ void MainWindowCurve::s_Jykt()
}
QString strWellName = ui->tableWidget_2->item(0, column)->text();
//直接从选中的井获取data记录slf路径
QString strSlfName = ui->tableWidget_2->item(0, column)->data(Qt::UserRole+1).toString();
int iWidth = ui->tableWidget_2->columnWidth(column);
int nW = 320;
@ -898,16 +920,16 @@ void MainWindowCurve::s_Jykt()
//井斜方位图
void MainWindowCurve::s_Denv()
{
QString strSlfName = "";
QString strLeft = m_leftWidgets->getLeftTreeString();
if(strLeft.length() > 0)
{
QStringList list = strLeft.split("#@@#");//QString字符串分割函数
if (list.size() > 3)
{
strSlfName = list[0];
}
}
// QString strSlfName = "";
// QString strLeft = m_leftWidgets->getLeftTreeString();
// if(strLeft.length() > 0)
// {
// QStringList list = strLeft.split("#@@#");//QString字符串分割函数
// if (list.size() > 3)
// {
// strSlfName = list[0];
// }
// }
if(ui->tableWidget_2->columnCount()==0)
{
@ -933,6 +955,9 @@ void MainWindowCurve::s_Denv()
}
QString strWellName = ui->tableWidget_2->item(0, column)->text();
//直接从选中的井获取data记录slf路径
QString strSlfName = ui->tableWidget_2->item(0, column)->data(Qt::UserRole+1).toString();
int iWidth = ui->tableWidget_2->columnWidth(column);
int nW = 320;
@ -946,16 +971,16 @@ void MainWindowCurve::s_Denv()
//图像 成图
void MainWindowCurve::s_DrawImage()
{
QString strSlfName = "";
QString strLeft = m_leftWidgets->getLeftTreeString();
if(strLeft.length() > 0)
{
QStringList list = strLeft.split("#@@#");//QString字符串分割函数
if (list.size() > 3)
{
strSlfName = list[0];
}
}
// QString strSlfName = "";
// QString strLeft = m_leftWidgets->getLeftTreeString();
// if(strLeft.length() > 0)
// {
// QStringList list = strLeft.split("#@@#");//QString字符串分割函数
// if (list.size() > 3)
// {
// strSlfName = list[0];
// }
// }
if(ui->tableWidget_2->columnCount()==0)
{
@ -981,6 +1006,9 @@ void MainWindowCurve::s_DrawImage()
}
QString strWellName = ui->tableWidget_2->item(0, column)->text();
//直接从选中的井获取data记录slf路径
QString strSlfName = ui->tableWidget_2->item(0, column)->data(Qt::UserRole+1).toString();
int iWidth = ui->tableWidget_2->columnWidth(column);
int nW = 320;
@ -1046,7 +1074,7 @@ void MainWindowCurve::NewWellAndTrack(QString strWellName, QString strSlfName, Q
{
//井没创建,创建井+道+曲线
//新建井
s_NewWell(strWellName);
s_NewWell(strWellName, strSlfName);
m_listWell.push_back(strWellName);
//新建道+曲线
@ -1676,6 +1704,7 @@ void MainWindowCurve::DisplayWells(QJsonArray wellsArray)
void MainWindowCurve::DisplayWell_One(QJsonObject wellObjInfo)
{
QString strWellName = "";
QString strSlfName = "";
QJsonArray tracksArray;
if (wellObjInfo.contains("WellName"))
@ -1687,10 +1716,29 @@ void MainWindowCurve::DisplayWell_One(QJsonObject wellObjInfo)
//新建井
//mainWindowCurve->s_NewWell(strWellName);
s_NewWell(strWellName);
//s_NewWell(strWellName);
}
}
if (wellObjInfo.contains("SlfName"))
{
QJsonValue value = wellObjInfo.value("SlfName");
if (value.isString()) {
strSlfName = value.toString();
qDebug() << "strSlfName:" << strSlfName;
//新建井
//mainWindowCurve->s_NewWell(strWellName);
//s_NewWell(strWellName);
}
}
//新建井
QString folderPath = GetLogdataPath();
folderPath = folderPath + g_prjname;
strSlfName = folderPath + "/" + "#" + strWellName + "/" + strSlfName;
s_NewWell(strWellName, strSlfName);
//
if (wellObjInfo.contains("formTracks"))
{

View File

@ -98,7 +98,7 @@ signals:
void sig_NewWell(QString strWellName);
public slots:
void s_NewWell(QString strWellName);//新建井
void s_NewWell(QString strWellName, QString strSlfName);//新建井
void s_NewTrackChangeWidth(QString strWellName);//新建道后,改变井宽
void s_NewTrack_No_Line(QString strWellName, QString strTrackName);//新建空白道,没有曲线
void s_AddLine_Property(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName,