# Conflicts:
#	logPlus/mainwindowcurve.cpp
This commit is contained in:
DESKTOP-450PEFP\mainc 2026-05-10 22:25:04 +08:00
commit 2c6ff9b050
5 changed files with 226 additions and 25 deletions

View File

@ -55,6 +55,9 @@ signals:
// 0.Uuid 1.WellName 2.SlfName 3.lineName 4.Type 5.W
void sig_NewCol(QStringList listdt);
//在选中道绘制(深度、玫瑰图等)
void sig_setDrawData(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QStringList listdt);
void sig_NewTrack(QString strUuid, QString strWellName, QString strSlfName, QString strLineName, QString strType, int nW = 0);//新建道
void sig_NewTrack_No_Line(QString strUuid, QString strWellName, QString strTrackName);//新建空白道,没有曲线
void sig_NewTrack_No_Line(QString strUuid, QJsonObject topObj, QJsonObject infoObj);//新建空白道,没有曲线

View File

@ -92,6 +92,9 @@ FormDraw::FormDraw(QWidget *parent, QString strSlfName, QString strWellName, QSt
//改变曲线名 //气测/FMT/射孔/文本
connect(CallManage::getInstance(), SIGNAL(sig_changeJiegutextLine(QString, QString, QString, QString, QString, QString)), this, SLOT(s_changeJiegutextLine(QString, QString, QString, QString, QString, QString)));
//在选中道绘制(深度、玫瑰图等)
connect(CallManage::getInstance(), SIGNAL(sig_setDrawData(QString, QString, QString, QString, QStringList)), this, SLOT(s_setDrawData(QString, QString, QString, QString, QStringList)));
}
FormDraw::~FormDraw()
@ -99,6 +102,21 @@ FormDraw::~FormDraw()
delete ui;
}
void FormDraw::s_setDrawData(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QStringList listdt)
{
//井名&道名不一致
if(strUuid == m_strUuid && m_strWellName == strWellName && m_strTrackName == strTrackName)
{
}
else
{
return;
}
QJsonObject objInfo;
setDrawData(listdt, objInfo);
}
void FormDraw::setDrawData(QStringList listdt, QJsonObject objInfo)
{
QString strWellName = listdt.at(1);

View File

@ -305,6 +305,8 @@ public slots:
//改变曲线名 //气测/FMT/射孔/文本
void s_changeJiegutextLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strNewLineName);
//在选中道绘制(深度、玫瑰图等)
void s_setDrawData(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QStringList listdt);
};
#endif // FORMDRAW_H

View File

@ -556,7 +556,7 @@ void MainWindowCurve::initToolBar()
connect(m_pinlvAc, &QAction::triggered, this, &MainWindowCurve::s_pinLvAc);//频率统计图
connect(m_ganzhuangtuAc, &QAction::triggered, this, &MainWindowCurve::s_NewGanZhuangTu);//杆状图
connect(m_roseAc, &QAction::triggered, this, &MainWindowCurve::s_roseAc);//玫瑰图
connect(m_DCAAc, &QAction::triggered, this, &MainWindowCurve::s_dcaAc);
connect(m_DCAAc, &QAction::triggered, this, &MainWindowCurve::s_dcaAc);//裂缝DCA分析
connect(m_collapseAc, &QAction::triggered, this, &MainWindowCurve::s_Jykt);//井眼垮塌矢量图
connect(m_deviAc, &QAction::triggered, this, &MainWindowCurve::s_Denv);//井斜方位图
connect(m_electric_imagingAc, &QAction::triggered, this, &MainWindowCurve::s_DrawImage);//图像
@ -2399,6 +2399,59 @@ QStringList MainWindowCurve::insertCol(double dW)
return sret;
}
QStringList MainWindowCurve::insertCol_New(double dW, QString strWellName, QString strSlfName)
{
QStringList sret;
int column = -1;
if(!m_listWell.contains(strWellName))
{
//井没创建,创建井+道+曲线
//新建井
s_NewWell(strWellName, strSlfName);
//m_listWell.push_back(strWellName);//重复添加
column= 0;
}
if(ui->tableWidget_2->columnCount()==0)
{
return sret;
}
int iWidth = 0;
if(column < 0)
{
column = ui->tableWidget_2->currentColumn();//列编号从0开始
iWidth = ui->tableWidget_2->columnWidth(column);
}
if(column<0)
{
//当前没有选中井
return sret;
}
if(column%2==0)
{
}
else
{
//空白列
return sret;
}
WellHeader* pWheader = qobject_cast<WellHeader*>(ui->tableWidget_2->cellWidget(0, column));
if (pWheader)
{
sret << pWheader->m_strWellName << pWheader->m_strSlfName;
}
//设置列宽
ui->tableWidget_2->setColumnWidth(column, iWidth+dW*g_dPixelPerCm);
return sret;
}
QStringList MainWindowCurve::getSelectWell_New()
{
QStringList sret;
@ -3647,11 +3700,33 @@ void MainWindowCurve::s_NewTrack()
void MainWindowCurve::s_NewDepth()
{
int column = -1;
double dW = 1.2;
QStringList sret = this->insertCol(dW);
if (sret.length() <= 0)
return;
//选中道
if(m_SelectTableItem.m_iTableType==2) {
//新建
QStringList dt;
dt << m_strUuid;
dt << m_SelectTableItem.m_strWellName;
dt << m_SelectTableItem.m_strSlfName;
dt << "深度";
dt << "depthObject";
dt << QString::number(dW);
//在选中道绘制(深度、玫瑰图等)
emit CallManage::getInstance()->sig_setDrawData(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, dt);
return;
}
QStringList sretSelect = this->getSelectWell_New();
if(sretSelect.length() <= 0)
return;
// int column = -1;
//double dW = 1.2;
QStringList sret = this->insertCol_New(dW, sretSelect.at(0), sretSelect.at(1));
if (sret.length() <= 0)
return;
QStringList dt;
dt << m_strUuid;
@ -3849,8 +3924,8 @@ void MainWindowCurve::s_NewCrack()
{
//选中道
if(m_SelectTableItem.m_iTableType==2) {
//新建表格曲线
emit CallManage::getInstance()->sig_AddTableLine(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, "IMAGE_DATA");
//裂缝
emit CallManage::getInstance()->sig_AddCrack(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, "FRAC_HOLE.TABLE");
return;
}
@ -3880,13 +3955,37 @@ void MainWindowCurve::s_NewShowDip()
NewWellAndTrack(sret.at(0), sret.at(1), "FRAC_HOLE.TABLE", "tableObject");
}
//频率
void MainWindowCurve::s_pinLvAc()
{
int nW = 4;
//选中道
if(m_SelectTableItem.m_iTableType==2) {
//新建
QStringList dt;
dt << m_strUuid;
dt << m_SelectTableItem.m_strWellName;
dt << m_SelectTableItem.m_strSlfName;
dt << "";
dt << "plObject";
dt << QString::number(nW);
QStringList sret = this->insertCol(nW);
if (sret.length() <= 0)
return;
//在选中道绘制(深度、玫瑰图等)
emit CallManage::getInstance()->sig_setDrawData(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, dt);
return;
}
QStringList sretSelect = this->getSelectWell_New();
if(sretSelect.length() <= 0)
return;
QStringList sret = this->insertCol_New(nW, sretSelect.at(0), sretSelect.at(1));
if (sret.length() <= 0)
return;
// QStringList sret = this->insertCol(nW);
// if (sret.length() <= 0)
// return;
QStringList dt;
dt << m_strUuid;
@ -3917,12 +4016,37 @@ void MainWindowCurve::s_NewGanZhuangTu()
NewWellAndTrack(sret.at(0), sret.at(1), "GANZHUANG.LINE", "ganzhuangtuObject");
}
//玫瑰图
void MainWindowCurve::s_roseAc()
{
int nW = 4;
QStringList sret = this->insertCol(nW);
if(sret.length() <= 0)
//选中道
if(m_SelectTableItem.m_iTableType==2) {
//新建
QStringList dt;
dt << m_strUuid;
dt << m_SelectTableItem.m_strWellName;
dt << m_SelectTableItem.m_strSlfName;
dt << "";
dt << "roseObject";
dt << QString::number(nW);
//在选中道绘制(深度、玫瑰图等)
emit CallManage::getInstance()->sig_setDrawData(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, dt);
return;
}
QStringList sretSelect = this->getSelectWell_New();
if(sretSelect.length() <= 0)
return;
QStringList sret = this->insertCol_New(nW, sretSelect.at(0), sretSelect.at(1));
if (sret.length() <= 0)
return;
// QStringList sret = this->insertCol(nW);
// if(sret.length() <= 0)
// return;
QStringList dt;
dt << m_strUuid;
@ -3935,12 +4059,37 @@ void MainWindowCurve::s_roseAc()
emit CallManage::getInstance()->sig_NewCol(dt);
}
//裂缝DCA分析
void MainWindowCurve::s_dcaAc()
{
int nW = 4;
QStringList sret = this->insertCol(nW);
if(sret.length() <= 0)
//选中道
if(m_SelectTableItem.m_iTableType==2) {
//新建
QStringList dt;
dt << m_strUuid;
dt << m_SelectTableItem.m_strWellName;
dt << m_SelectTableItem.m_strSlfName;
dt << "";
dt << "dcaObject";
dt << QString::number(nW);
//在选中道绘制(深度、玫瑰图等)
emit CallManage::getInstance()->sig_setDrawData(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, dt);
return;
}
QStringList sretSelect = this->getSelectWell_New();
if(sretSelect.length() <= 0)
return;
QStringList sret = this->insertCol_New(nW, sretSelect.at(0), sretSelect.at(1));
if (sret.length() <= 0)
return;
// QStringList sret = this->insertCol(nW);
// if(sret.length() <= 0)
// return;
QStringList dt;
dt << m_strUuid;
@ -3991,16 +4140,20 @@ void MainWindowCurve::s_Denv()
//图像 成图
void MainWindowCurve::s_DrawImage()
{
int nW = 4;
QStringList sret = this->insertCol(nW);
if (sret.length() <= 0)
return;
QString strWellName = sret.at(0);
//直接从选中的井获取data记录slf路径
QString strSlfName = sret.at(1);
int nW = 4;
//选中道
if (m_SelectTableItem.m_iTableType == 2) {
//图像 成图
emit CallManage::getInstance()->sig_AddDrawImage(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, "DYNIMAGE");
return;
}
//新建道
emit CallManage::getInstance()->sig_NewTrack(m_strUuid, strWellName, strSlfName, "DYNIMAGE", "DrawImageObject", nW);
QStringList sret = this->getSelectWell_New();
if (sret.length() <= 0)
return;
//新建井+道+曲线(首条)
NewWellAndTrack(sret.at(0), sret.at(1), "DYNIMAGE", "DrawImageObject");
}
//地质层位道
@ -4097,9 +4250,33 @@ void MainWindowCurve::s_NewTubingstring()
void MainWindowCurve::s_NewTDT()
{
int nW = 10;
QStringList sret = this->insertCol(nW);
if(sret.length() <= 0)
//选中道
if(m_SelectTableItem.m_iTableType==2) {
//新建
QStringList dt;
dt << m_strUuid;
dt << m_SelectTableItem.m_strWellName;
dt << m_SelectTableItem.m_strSlfName;
dt << "";
dt << "tdtObject";
dt << QString::number(nW);
//在选中道绘制(深度、玫瑰图等)
emit CallManage::getInstance()->sig_setDrawData(m_strUuid, m_SelectTableItem.m_strSlfName, m_SelectTableItem.m_strWellName, m_SelectTableItem.m_strTrackName, dt);
return;
}
QStringList sretSelect = this->getSelectWell_New();
if(sretSelect.length() <= 0)
return;
QStringList sret = this->insertCol_New(nW, sretSelect.at(0), sretSelect.at(1));
if (sret.length() <= 0)
return;
// QStringList sret = this->insertCol(nW);
// if(sret.length() <= 0)
// return;
QStringList dt;
dt << m_strUuid;

View File

@ -119,6 +119,7 @@ public:
// 返回 strWellName << strSlfName
QStringList insertCol(double dW);
QStringList insertCol_New(double dW, QString strWellName, QString strSlfName);
// 返回 strWellName << strSlfName
QStringList getSelectWell();