井属性,追加“显示道头”勾选框

This commit is contained in:
jiayulong 2026-05-26 16:57:20 +08:00
parent 88eb156b5e
commit a1d59208b0
6 changed files with 124 additions and 32 deletions

View File

@ -204,7 +204,7 @@ signals:
//修改黑白图
void sig_changeBlack(QString strUuid, bool bBlack);
void sig_changeWellProperty(QString strSlfName, QString strWellName, QVariantList listVal);
void sig_changeWellProperty(QString strUuid, QString strSlfName, QString strWellName, QVariantList listVal);
//改变道宽
void sig_changeWidth(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, int iCurrentCol, int iNewWidth);

View File

@ -1954,7 +1954,7 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant
else
{
QVariantList vlist = { strGroup, strPro, variant };
emit CallManage::getInstance()->sig_changeWellProperty(m_strSlfName, m_strWellName, vlist);
emit CallManage::getInstance()->sig_changeWellProperty(m_strUuid, m_strSlfName, m_strWellName, vlist);
}
}
else if(m_strCurrentProperty == Curve_Property)
@ -2858,6 +2858,7 @@ void PropertyWidget::initWellProperty(QString strUuid, QString strSlfName, QStri
//
_CreateVariantPropertyItem("通常", "开始深度(m)", 0-m_iY2, QVariant::Double);
_CreateVariantPropertyItem("通常", "终止深度(m)", 0-m_iY1, QVariant::Double);
_CreateVariantPropertyItem("通常", "显示道头", fWell->m_bShowTrackHead, QVariant::Bool);
if (fWell)
{

View File

@ -727,6 +727,28 @@ void FormWell::setWellProperty(QVariantList listVal)
QString strGroup = listVal.at(0).toString();
QString strPro = listVal.at(1).toString();
if (strGroup == "通常")
{
if ("显示道头" == strPro)
{
m_bShowTrackHead = listVal.at(2).toBool();
//
if(m_bShowTrackHead)
{
ui->tableWidget->showRow(0);
ui->tableWidget->update();
}
else
{
ui->tableWidget->hideRow(0);
ui->tableWidget->update();
}
MainWindowCurve *parent = (MainWindowCurve *)m_parent;
parent->SetScrollBar_Geometry();
}
return;
}
GridProperty* gridpt = NULL;// &pWell->getCuGridProperty();
if (strGroup == "粗网格")
{
@ -895,6 +917,7 @@ QJsonObject FormWell::makeJson()
//
rootObj["WellName"] = m_strWellName;
rootObj["SlfName"] = slffilename;
rootObj["bShowTrackHead"] = m_bShowTrackHead;
// 创建JSON数组并填充数据
QJsonArray subcaseArray;
@ -1160,19 +1183,34 @@ void FormWell::HideTableHead()
{
if(ui->tableWidget->rowCount()>0)
{
//高度
ui->tableWidget->hideRow(0);
//显示道头
if(m_bShowTrackHead)
{
ui->tableWidget->showRow(0);
}
else
{
ui->tableWidget->hideRow(0);
}
ui->tableWidget->hideRow(1);
ui->tableWidget->update();
}
}
//显示道头/对象头
void FormWell::ShowTableHead()
{
if(ui->tableWidget->rowCount()>0)
{
//高度
ui->tableWidget->showRow(0);
//显示道头
if(m_bShowTrackHead)
{
ui->tableWidget->showRow(0);
}
else
{
ui->tableWidget->hideRow(0);
}
ui->tableWidget->showRow(1);
ui->tableWidget->update();
}

View File

@ -65,6 +65,7 @@ public:
double m_iY1=0;
double m_iY2=0;
QWidget *m_parent;
bool m_bShowTrackHead = true; //显示道头
// 道图形
QMap<QString, QVector<QWidget*>> m_mapFormDraw;

View File

@ -137,12 +137,11 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) :
connect(ui->verticalScrollBar_2, SIGNAL(valueChanged(int)), this, SLOT(vertScrollBarChanged_Head(int)));
connect(this, SIGNAL(sig_NewTrackChangeWidth(QString, double)), this, SLOT(s_NewTrackChangeWidth(QString, double)));
//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(QString, int)), this, SLOT(s_changeScale(QString, int)));
connect(CallManage::getInstance(), SIGNAL(sig_changeDepth(QString, QString, QString, int, int)), this, SLOT(s_changeDepth(QString, QString, QString, int, int)));
connect(CallManage::getInstance(), SIGNAL(sig_changeWellProperty(QString, QString, QVariantList)), this, SLOT(s_changeWellProperty(QString, QString, QVariantList)));
connect(CallManage::getInstance(), SIGNAL(sig_changeWellProperty(QString, QString, QString, QVariantList)), this, SLOT(s_changeWellProperty(QString, QString, QString, QVariantList)));
connect(CallManage::getInstance(), SIGNAL(sig_changeWidth(QString, QString, QString, QString, int, int)), this, SLOT(s_changeWidth(QString, QString, QString, QString, int, int)));
connect(CallManage::getInstance(), SIGNAL(sig_changeTrackProperty(QVariantList)), this, SLOT(s_changeTrackProperty(QVariantList)));
@ -252,6 +251,7 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) :
});
}
//2个滚动条位置
void MainWindowCurve::SetScrollBar_Geometry()
{
//锁头
@ -2598,7 +2598,7 @@ QStringList MainWindowCurve::insertCol(double dW)
{
//井没创建,创建井+道+曲线
//新建井
s_NewWell(strWellName, strSlfName);
s_NewWell(strWellName, strSlfName, m_bShowTrackHead);
//m_listWell.push_back(strWellName);//重复添加
column= 0;
@ -2653,7 +2653,7 @@ QStringList MainWindowCurve::insertCol_New(double dW, QString strWellName, QStri
{
//井没创建,创建井+道+曲线
//新建井
s_NewWell(strWellName, strSlfName);
s_NewWell(strWellName, strSlfName, m_bShowTrackHead);
//m_listWell.push_back(strWellName);//重复添加
column= 0;
@ -3823,7 +3823,7 @@ void MainWindowCurve::s_selectWell()
//井没创建,创建井+道+曲线
//新建井
s_NewWell(listWell[g_SelectWellIndex], listSlf[g_SelectWellIndex]);
s_NewWell(listWell[g_SelectWellIndex], listSlf[g_SelectWellIndex], m_bShowTrackHead);
//新建道
emit CallManage::getInstance()->sig_NewTrack(m_strUuid, listWell[g_SelectWellIndex], "", "", "");
}
@ -3951,7 +3951,7 @@ QJsonObject MainWindowCurve::makeJson()
return rootObj;
}
void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName)
void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName, bool bShowTrackHead)
{
//因为tableWidget需要提前规定好行数与列数
int rowcount = 2; //总行数
@ -4052,12 +4052,16 @@ void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName)
widgetWell->m_nObjLyrH = m_nObjLayerH;
widgetWell->m_nObjDrawH = m_nObjDrawH;
widgetWell->m_iScale = m_iScale;
widgetWell->setWellHeader(wellH);
widgetWell->setWellHeader(wellH);
//显示道头
widgetWell->m_bShowTrackHead = bShowTrackHead;
//
ui->tableWidget_2->setCellWidget(i, columnCount, widgetWell);//默认用widgetWell填充满
m_mapFWell.insert(strWellName, widgetWell);
//
m_listWell.push_back(strWellName);
//显示道头
widgetWell->ShowTableHead();
}
}
@ -4154,7 +4158,7 @@ void MainWindowCurve::s_NewTrack()
{
//井没创建,创建井+道+曲线
//新建井
s_NewWell(strWellName, strSlfName);
s_NewWell(strWellName, strSlfName, m_bShowTrackHead);
//m_listWell.push_back(strWellName);//重复添加
column= 0;
@ -4878,7 +4882,7 @@ void MainWindowCurve::NewWellAndTrack(QString strWellName, QString strSlfName, Q
{
//井没创建,创建井+道+曲线
//新建井
s_NewWell(strWellName, strSlfName);
s_NewWell(strWellName, strSlfName, m_bShowTrackHead);
//m_listWell.push_back(strWellName);//重复添加
//新建道+曲线
@ -5423,13 +5427,60 @@ void MainWindowCurve::changeDepthForPrint()
progressBar->deleteLater();
}
void MainWindowCurve::s_changeWellProperty(QString strSlfName, QString strWellName, QVariantList listVal)
void MainWindowCurve::s_changeWellProperty(QString strUuid, QString strSlfName, QString strWellName, QVariantList listVal)
{
FormWell* pWell = m_mapFWell.value(strWellName);
if (!pWell)
return;
if(m_strUuid==strUuid)
{
}
else
{
return;
}
pWell->setWellProperty(listVal);
QString strGroup = listVal.at(0).toString();
QString strPro = listVal.at(1).toString();
if (strGroup == "通常" && "显示道头" == strPro)
{
m_bShowTrackHead = listVal.at(2).toBool();
//目前对所有井统一处理,不然出图时无法对齐
int columnCount = ui->tableWidget_2->columnCount();//总列数
for(int i=0; i<columnCount; i++)
{
if(i%2==0)
{
}
else
{
//空白列
continue;
}
if( ui->tableWidget_2->cellWidget(1, i) != nullptr )
{
auto myWidget = ui->tableWidget_2->cellWidget(1, i);
if(myWidget)
{
//
FormWell *widgetWell = (FormWell*)myWidget;//获得widget
if(widgetWell)
{
widgetWell->setWellProperty(listVal);
}
}
}
}
}
else
{
//其他网格属性,只针对当前井
FormWell* pWell = m_mapFWell.value(strWellName);
if (!pWell)
return;
pWell->setWellProperty(listVal);
}
}
void MainWindowCurve::DisplayWells(QJsonArray wellsArray)
@ -5490,10 +5541,6 @@ void MainWindowCurve::DisplayWell_One(QJsonObject wellObjInfo)
if (value.isString()) {
strWellName = value.toString();
qDebug() << "WellName:" << strWellName;
//新建井
//mainWindowCurve->s_NewWell(strWellName);
//s_NewWell(strWellName);
}
}
@ -5503,10 +5550,14 @@ void MainWindowCurve::DisplayWell_One(QJsonObject wellObjInfo)
if (value.isString()) {
strSlfName = value.toString();
qDebug() << "strSlfName:" << strSlfName;
}
}
//新建井
//mainWindowCurve->s_NewWell(strWellName);
//s_NewWell(strWellName);
if (wellObjInfo.contains("bShowTrackHead"))
{
QJsonValue value = wellObjInfo.value("bShowTrackHead");
if (value.isBool()) {
m_bShowTrackHead = value.toBool();
}
}
@ -5514,7 +5565,7 @@ void MainWindowCurve::DisplayWell_One(QJsonObject wellObjInfo)
QString folderPath = GetLogdataPath();
folderPath = folderPath + g_prjname;
strSlfName = folderPath + "/" + "#" + strWellName + "/" + strSlfName;
s_NewWell(strWellName, strSlfName);
s_NewWell(strWellName, strSlfName, m_bShowTrackHead);
//
if (wellObjInfo.contains("formTracks"))

View File

@ -109,6 +109,7 @@ public:
int m_iCurPage = 1;//当前页
//图像自滚定时器
QTimer *m_clockTimer = nullptr;
bool m_bShowTrackHead = true; //显示道头
public:
//黑白图,针对共享内存,使用老版本代码,需要以下定义
@ -126,6 +127,7 @@ public:
void SetIsColorPrint(bool iscolorprint);
bool GetIsColorPrint();
void SetNo();
//2个滚动条位置
void SetScrollBar_Geometry();
public:
@ -177,8 +179,7 @@ public:
void writeTiff(const QImage image, const QString filename);
signals:
void sig_NewTrackChangeWidth(QString strWellName, double nW=0);//新建道后,改变井宽
void sig_NewWell(QString strWellName);
void sig_NewTrackChangeWidth(QString strWellName, double nW=0);//新建道后,改变井宽
public slots:
void slot_time();
@ -186,7 +187,7 @@ public slots:
void s_changeScale(QString strUuid, int iNewScale);
//改变深度
void s_changeDepth(QString strUuid, QString strSlfName, QString strWellName, int iY1, int iY2);
void s_changeWellProperty(QString strSlfName, QString strWellName, QVariantList listVal);
void s_changeWellProperty(QString strUuid, QString strSlfName, QString strWellName, QVariantList listVal);
//改变道宽
void s_changeWidth(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, int iCurrentCol, int iNewWidth);
@ -238,7 +239,7 @@ public:
QAction* m_ModuleOpenAc = nullptr; //处理方法
public slots:
void s_NewWell(QString strWellName, QString strSlfName);//新建井
void s_NewWell(QString strWellName, QString strSlfName, bool bShowTrackHead = true);//新建井
void s_NewTrackChangeWidth(QString strWellName, double nW=0);//新建道后,改变井宽
void s_NewTrack_No_Line(QString strWellName, QString strTrackName);//新建空白道,没有曲线