This commit is contained in:
DESKTOP-450PEFP\mainc 2026-04-01 17:13:44 +08:00
commit 99486e528e
22 changed files with 1483 additions and 551 deletions

View File

@ -39,7 +39,7 @@ signals:
void sig_CloseProject();//关闭项目
void sig_ShowParameterCard(QString strSlfName, QString strName);//参数表查看
void sig_ShowCurve(QString strSlfName, QString strName);//曲线数据查看
void sig_ShowCurve(QMap<QString,QList<QString>> mapShowObject);//曲线数据查看
void sig_DepthShift(QString strSlfName, QString strName, double DepthOffset);//深度移动
void sig_ShowTable(QString strSlfName, QString strName);//表格数据查看
void sig_ShowWave(QString strSlfName, QString strName);//波列数据查看

View File

@ -1930,37 +1930,37 @@ void CDataManagger::CallDisplayWaveOrCurve(int Type, const QString& FileName,
}
// void CDataManagger::CallDisplayCurveVerChange(int Type, const QString& FileName,
// const QString& CurveName, QWidget* parent, int value, float tipValue)
// {
// //常规曲线
// if (Type == 0)
// {
// ShowCurve *pDlg=parent->findChild<ShowCurve*>("curveView");
// if(NULL == pDlg)
// {
// pDlg=new ShowCurve(parent);
// pDlg->setObjectName("curveView");
// pDlg->FileName=FileName;
// pDlg->CurveName=CurveName;
// pDlg->init();
// pDlg->show();
// }
void CDataManagger::CallDisplayCurveVerChange(int Type, const QString& FileName,
const QString& CurveName, QWidget* parent, int value, float tipValue)
{
//常规曲线
if (Type == 0)
{
ShowCurve *pDlg=parent->findChild<ShowCurve*>("curveView");
if(NULL == pDlg)
{
pDlg=new ShowCurve(parent);
pDlg->setObjectName("curveView");
pDlg->FileName=FileName;
pDlg->CurveName=CurveName;
pDlg->init();
pDlg->show();
}
// pDlg->linkVerDeptSliderValueChange(value, tipValue);
pDlg->linkVerDeptSliderValueChange(value, tipValue);
// }
}
// }
}
// void CDataManagger::sendTableP2Mgr(QWidget* parent, QScrollBar *p, QTableWidget *t)
// {
// ShowCurve *pDlg = parent->findChild<ShowCurve*>("curveView");
// if(NULL == pDlg) return;
void CDataManagger::sendTableP2Mgr(QWidget* parent, QScrollBar *p, QTableWidget *t)
{
ShowCurve *pDlg = parent->findChild<ShowCurve*>("curveView");
if(NULL == pDlg) return;
// pDlg->setTableBro(p);
// pDlg->setCurveTable(t);
// }
pDlg->setTableBro(p);
pDlg->setCurveTable(t);
}
/*
void CDataManagger::ListMessage(const QString& listName,const QStringList& header,const QStringList& listMessage)

View File

@ -70,6 +70,7 @@ FORMS += \
HEADERS += \
../../common/geometryutils.h \
../include/DataManagger.h \
AdaptionComboBox.h \
AngleAdjTool.h \
CheckHeadView.h \
@ -92,8 +93,7 @@ HEADERS += \
cdialog.h \
dataslothelper.h \
deptlineedit.h \
view.h \
../include/DataManagger.h
view.h
SOURCES += \
../../common/geometryutils.cpp \

View File

@ -138,6 +138,7 @@ public:
public:
void setName(QString strOldPath, QString strOldName, int nObjectType);
void setShowCurveName(QString strPath, QString strName, QMap<QString,QList<QString>> mapShowObject);
};
#endif /* PAITABLEWIDGET_H_ */

View File

@ -191,6 +191,7 @@ void WellLogTableDialogNew::setName(QString strOldPath, QString strOldName, int
pWellLog->m_name = strOldName;
m_pWellLogs.clear();
m_pWellLogs.append(pWellLog);
//初始化
InitWell();
@ -205,6 +206,46 @@ void WellLogTableDialogNew::setName(QString strOldPath, QString strOldName, int
//m_pUI->tableWidget->setCurrentCell(300, 0);
}
void WellLogTableDialogNew::setShowCurveName(QString strPath, QString strName, QMap<QString,QList<QString>> mapShowObject)
{
FileName = strPath;
CurveName = strName;
m_ObjectType = CURVE_OBJECT;
if (WAVE_OBJECT != m_ObjectType)
m_pUI->horizontalScrollBar->hide();
m_pWellLogs.clear();
QList<QString> listShowSlfName = mapShowObject.keys();
for(int i= 0; i < listShowSlfName.size(); i++)
{
QString strSlfName = listShowSlfName.at(i);
QList<QString> listObjectName = mapShowObject[listShowSlfName.at(i)];
for(int j= 0; j < listObjectName.size(); j++)
{
QString strCurveName = listObjectName.at(j);
CObjWellLog* pWellLog = new CObjWellLog;
pWellLog->SetSlfFileName(strSlfName);
pWellLog->m_name = strCurveName;
m_pWellLogs.append(pWellLog);
}
}
//初始化
InitWell();
m_gridData->m_middleWidth=0;
m_gridData->m_gridWidth=0;
InitWellLog();
qDebug() << "count=" << QString::number(count);
m_pUI->tableWidget->verticalScrollBar()->setRange(0, count);//count
m_pUI->tableWidget->verticalScrollBar()->setValue(count / 2);
//m_pUI->tableWidget->setCurrentCell(300, 0);
}
//井眼轨迹
void WellLogTableDialogNew::InitWell()
{

View File

@ -3448,17 +3448,17 @@ void GridDataAdapter::slotVerScrollValueChange(int nValue)
m_popTip->moveCursorPoint(m_popTipValue);
if(m_dtype == D_WellLogData){
// //20210111 GZL add 联动
// QWidget* parent=qobject_cast<QWidget*>(m_table->parent());
// QWidget* pvPage=parent->findChild<QWidget*>("curvePreViewPage");
// int value = (m_EDep-m_popTipValue)*CurveViewVerRange/(m_EDep-m_SDep)+1;
// if(value >= 0 && value <= CurveViewVerRange){
// m_mgr->CallDisplayCurveVerChange(0,fileName,curveName,pvPage,value,m_popTipValue);
//20210111 GZL add 联动
QWidget* parent=qobject_cast<QWidget*>(m_table->parent());
QWidget* pvPage=parent->findChild<QWidget*>("curvePreViewPage");
int value = (m_EDep-m_popTipValue)*CurveViewVerRange/(m_EDep-m_SDep)+1;
if(value >= 0 && value <= CurveViewVerRange){
m_mgr->CallDisplayCurveVerChange(0,fileName,curveName,pvPage,value,m_popTipValue);
// m_mgr->sendTableP2Mgr(pvPage, m_verScrolBar, m_table);
// }
m_mgr->sendTableP2Mgr(pvPage, m_verScrolBar, m_table);
}
// //updateTableView();
//updateTableView();
}
}
else{

File diff suppressed because it is too large Load Diff

View File

@ -52,6 +52,7 @@
#define CORE_PHYSICS_ITEM_PROPERTY "CORE_PHYSICS_ITEM_PROPERTY" // 岩心分析item
#define Depth_Property "Depth_Property" // 深度
#define PL_OBJECT_PROPERTY "PL_OBJECT_PROPERTY" // 频率统计图
#define SwallCore_Property "SwallCore_Property" //井壁取心
#define SwallCoreItem_Property "SwallCoreItem_Property" //井壁取心item
@ -173,8 +174,6 @@ public:
void initHeadProperty(FormHead *formHead, QTableWidget *tableWidget, QTableWidgetItem* item, int row, int col);
void initTableProperty(FormInfo *formInfo);
// 深度
void initDepthProperty(FormInfo *formInfo);
void initProperty(FormInfo *formInfo);
// 玫瑰图属性
@ -189,14 +188,6 @@ public:
void initGujingProperty(FormInfo *formInfo);
void initGujingItemProperty(TransparentDraggableGujing* tdGujing, double lower, double upper, QString strResult);
// 岩心照片属性
void initImageProperty(FormInfo *formInfo);
void initImageItemProperty(TransparentDraggableImage* tdImage, double lower, double upper, QString strResult, double left, double width, QColor borderColor, Qt::PenStyle borderStyle, int borderWidth);
// 岩心分析属性 isItem用来判断是不是item 默认false
void initCorePhysicsProperty(FormInfo *formInfo, bool isItem = false);
void initCorePhysicsItemProperty(TransparentDraggableCorePhysics* tdImage);
// 井壁取心属性
void initSwallCoreProperty(FormInfo *formInfo);
void initSwallCoreItemProperty(TransparentDraggableSwallCore* tdSwallCore, double Depth, QString LithologyImage, QString OilGasImage, QString ColorImage, double Sideleft, double width, int iColor);
@ -234,15 +225,25 @@ public:
//处理通用属性
void CommonPropertyChanged(QtProperty *pProperty, const QVariant &variant);
// 岩心照片
// 频率统计图
void initPlObjectProperty(FormInfo *formInfo);
void changedPlObjectProperty(QString strProName, QVariant val);
// 岩心照片 属性
void initImageProperty(FormInfo *formInfo);
void initImageItemProperty(TransparentDraggableImage* tdImage, double lower, double upper, QString strResult, double left, double width, QColor borderColor, Qt::PenStyle borderStyle, int borderWidth);
void changedYxzpProperty(QtProperty *pProperty, const QVariant &variant);
void changedYxzpItemProperty(QtProperty *pProperty, const QVariant &variant);
// 深度
void initDepthProperty(FormInfo *formInfo);
void changedDepthProperty(QString strProName, QVariant val);
// 岩心分析
// 岩心分析 属性 isItem用来判断是不是item 默认false
void initCorePhysicsProperty(FormInfo *formInfo, bool isItem = false);
void initCorePhysicsItemProperty(TransparentDraggableCorePhysics* tdImage);
void changedCorePhysicsProperty(QtProperty *pProperty, const QVariant &variant, bool isItem = false);
public slots:
void SlotPropertyChanged(QtProperty *property, const QVariant &variant);
void SlotPropertyChanged(QtProperty *property, const int &val, bool islinestyle);

View File

@ -1,4 +1,4 @@
#include "YxzpDialog.h"
#include "YxzpDialog.h"
YxzpDialog::YxzpDialog(QWidget *parent)
: QDialog(parent)

View File

@ -1,4 +1,4 @@
#ifndef YXZPDIALOG_H
#ifndef YXZPDIALOG_H
#define YXZPDIALOG_H
// 岩心照片 自定义 dialog
#include <QDialog>
@ -8,10 +8,10 @@
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QFileDialog>
#include <QPixmap>
#pragma execution_character_set("utf-8")
class YxzpDialog : public QDialog
{
Q_OBJECT

View File

@ -189,6 +189,16 @@ void CustomTabWidget::dropEvent(QDropEvent *event)
//关闭
void CustomTabWidget::slot_tabClose(int index)
{
QWidget *selectWidget = tabWidget(index);
QString objectName = selectWidget->objectName();
if(objectName == "MainWindowSplitter")
{
int flag = QMessageBox::warning(NULL,"提示",QString("图文件尚未保存,您确信关闭当前窗口?"),QMessageBox::Yes,QMessageBox::No);
if(flag!=QMessageBox::Yes) return;
}
//移除
removeTab(index);
//属性清空

View File

@ -192,7 +192,7 @@ void FormDraw::setDrawData(QStringList listdt, QJsonObject objInfo)
// 设置左侧显示属性 设置界面样式
if(pInfo->m_strUnit.isEmpty()){
pInfo->m_strUnit = "(米)";
pInfo->m_strUnitFont = QFont("微软雅黑", 10);
pInfo->m_strUnitFont = QFont("微软雅黑", 8);
}
initDepth(curv);
// 读json后 重新设置样式
@ -312,6 +312,11 @@ void FormDraw::setDrawData(QStringList listdt, QJsonObject objInfo)
}
else if("plObject" == strType)
{
if(pInfo->m_strUnit.isEmpty()){
pInfo->m_strUnit = "(°)";
pInfo->m_strUnitFont = QFont("微软雅黑", 8);
}
initFgrq(curv);
}
else if("roseObject" == strType)
@ -8154,6 +8159,63 @@ void FormDraw::dropEvent(QDropEvent* event)
//新建表格曲线
emit CallManage::getInstance()->sig_AddTableLine(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="depthObject")
{
qDebug() << "新建深度";
//新建曲线
emit CallManage::getInstance()->sig_AddDepth(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="ganzhuangtuObject")
{
//新建杆状图
emit CallManage::getInstance()->sig_AddGanZhuangTu(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="JyktObject")
{
//新建井眼垮塌矢量图
emit CallManage::getInstance()->sig_AddJykt(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="DenvObject")
{
//新建井斜方位图
emit CallManage::getInstance()->sig_AddDenv(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="DrawImageObject")
{
//图像 成图
emit CallManage::getInstance()->sig_AddDrawImage(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="SantuyibiaoObject")
{
//斜井三图一表
emit CallManage::getInstance()->sig_AddSantuyibiao(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="CrackObject")
{
//裂缝
emit CallManage::getInstance()->sig_AddCrack(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="JiegutextObject")
{
//气测/FMT/射孔/文本
emit CallManage::getInstance()->sig_AddJiegutext(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="LogfaceObject")
{
//沉积相
emit CallManage::getInstance()->sig_AddLogface(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="MCalsObject")
{
//多臂井径
emit CallManage::getInstance()->sig_AddMCals(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="TubingstringObject")
{
//套管组件
emit CallManage::getInstance()->sig_AddTubingstring(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
// 接受拖拽事件
event->setDropAction(Qt::MoveAction);
event->accept();

View File

@ -747,7 +747,10 @@ void FormInfo::paintEvent(QPaintEvent* event)
}
else
{
QFont oldFont = painter.font();
painter.setFont(this->m_strAliasNameFont);
painter.drawText(rt, Qt::AlignCenter, text);
painter.setFont(oldFont);
}
}
@ -793,18 +796,19 @@ void FormInfo::paintEvent(QPaintEvent* event)
painter.drawText(rect.left(), rect.top()+rect.height()*2/3, rect.width(), rect.height()/3 ,Qt::AlignCenter, QString::number(m_vmin)+" ~ "+QString::number(m_vmax));
}
if(m_strLineName == "深度")
if(m_strLineName == "深度" || m_strType == "plObject")
{
QFont oldFont = painter.font();
painter.setFont(m_strUnitFont);
painter.drawText(rect.left(), rect.top() + rect.height() * 2 / 3, rect.width(), rect.height() / 3, Qt::AlignCenter, this->m_strUnit);
painter.setFont(oldFont);
}
// 岩心分析
if(m_strType == "tableObject" && m_strLineName == "CORE_PHYSICS")
{
painter.setPen(Qt::black);
// 字体->曲线单位
QFont oldFont = painter.font();
painter.setFont(m_strUnitFont);
// 显示单位
painter.drawText(rect.left()+10, rect.top() + rect.height() * 2 / 3, rect.width(), rect.height() / 3, Qt::AlignCenter, m_strUnit);
painter.setFont(oldFont);
@ -854,6 +858,11 @@ void FormInfo::paintEvent(QPaintEvent* event)
painter.setFont(oldFont);
}
if(this->m_strType == "plObject")
{
}
QWidget::paintEvent(event);
}

View File

@ -85,9 +85,10 @@ public:
QString m_strWellName;
QString m_strTrackName;
QString m_strLineName;
QString m_strAliasName;//显示名称
QString m_strAliasName; //显示名称
QFont m_strAliasNameFont = QFont("微软雅黑", 10); //显示名称字体
QString m_strUnit = "(米)";//单位
QFont m_strUnitFont = QFont("微软雅黑", 10);//单位字体
QFont m_strUnitFont = QFont("微软雅黑", 8);//单位字体
// 头部高度
int m_headHeight = 100;
@ -205,7 +206,7 @@ public:
QColor m_sdRulerColor; // 标尺颜色
double m_sdInterval = 20; // 间隔
QFont m_sdLabelFont = QFont("微软雅黑", 10); // 标注字体
double m_sdRotationAngle = 0.0; // 旋转(°)
double m_sdRotationAngle = 90.0; // 旋转(°)
bool m_sdDrawStartDepth; // 绘制起点深度
bool m_sdDrawEndDepth; // 绘制终点深度
bool m_sdMeasuredDepth = true; // 斜深
@ -240,6 +241,61 @@ public:
QColor m_cp_symbolFillColor; // 填充颜色
int m_cp_fieldName = 0; // 字段名称
// 频率统计图
// 数据
int m_pl_dataType; // 数据类型
QString m_pl_azimuthCurve = "DDIR"; // 方位曲线
QString m_pl_inclinationCurve = "DANG"; // 倾角曲线
// 通用界面配置
QString m_pl_sectionHeight; // 例区高度(cm)
// 字体相关配置
QString m_pl_fontName; // 字体名称
QString m_pl_fontUnit; // 单位字体
int m_pl_fontScale; // 刻度字体大小
QString m_pl_curveName; // 曲线名称
// 控制曲线参数
QString m_pl_controlCurveName; // 控制曲线名
double m_pl_controlMinValue; // 控制最小值
double m_pl_controlMaxValue; // 控制最大值
// 方位频率绘图参数
int m_pl_azimuthFrequency; // 方位频率
int m_pl_sectorCount; // 扇形数量
double m_pl_circleRadius; // 圆半径(cm)
QColor m_pl_circleColor; // 圆线颜色
int m_pl_circleLineWidth; // 圆线宽度
bool m_pl_isFillEnabled; // 是否启用填充
QColor m_pl_fillColor; // 填充颜色
int m_pl_fillFrequency; // 填充频率
// 倾角频率绘图参数
int m_pl_dipFrequency; // 倾角频率
int m_pl_lineType; // 线型
int m_pl_lineThickness; // 线粗细
QColor m_pl_lineColor; // 线颜色
bool m_pl_drawAnnotation; // 是否绘制标注
bool m_pl_drawHistogram; // 是否绘制直方图
// 基线参数
int m_pl_baselineWidth; // 基线宽度
QColor m_pl_baselineColor; // 基线颜色
// 统计参数
int m_pl_statInterval; // 统计间隔
double m_pl_minInclination; // 最小倾角
double m_pl_maxInclination; // 最大倾角
// 地质要素分类开关
bool m_pl_highGap; // 高导缝
bool m_pl_highReservoir; // 高阻缝
bool m_pl_reticularFracture; // 网状缝
bool m_pl_inducedFracture; // 诱导缝
bool m_pl_bedLayer; // 层理
bool m_pl_erosionSurface; // 侵蚀面
bool m_pl_pore; // 孔洞
bool m_pl_vesicle; // 气孔
bool m_pl_gravel; // 砾石
bool m_pl_nodule; // 结核
bool m_pl_lumps; // 团块
bool m_pl_fault; // 断层
bool m_pl_verticalFracture; // 垂直缝
QString m_pl_custom1; // 自定义1
int cpLineWidth() const;
void setCpLineWidth(int cpLineWidth);

View File

@ -137,6 +137,62 @@ void FormTrackTop::dropEvent(QDropEvent* event)
//新建表格曲线
emit CallManage::getInstance()->sig_AddTableLine(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="depthObject")
{
qDebug() << "新建深度";
//新建曲线
emit CallManage::getInstance()->sig_AddDepth(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="ganzhuangtuObject")
{
//新建杆状图
emit CallManage::getInstance()->sig_AddGanZhuangTu(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="JyktObject")
{
//新建井眼垮塌矢量图
emit CallManage::getInstance()->sig_AddJykt(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="DenvObject")
{
//新建井斜方位图
emit CallManage::getInstance()->sig_AddDenv(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="DrawImageObject")
{
//图像 成图
emit CallManage::getInstance()->sig_AddDrawImage(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="SantuyibiaoObject")
{
//斜井三图一表
emit CallManage::getInstance()->sig_AddSantuyibiao(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="CrackObject")
{
//裂缝
emit CallManage::getInstance()->sig_AddCrack(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="JiegutextObject")
{
//气测/FMT/射孔/文本
emit CallManage::getInstance()->sig_AddJiegutext(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="LogfaceObject")
{
//沉积相
emit CallManage::getInstance()->sig_AddLogface(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="MCalsObject")
{
//多臂井径
emit CallManage::getInstance()->sig_AddMCals(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="TubingstringObject")
{
//套管组件
emit CallManage::getInstance()->sig_AddTubingstring(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
// 接受拖拽事件
event->setDropAction(Qt::MoveAction);
event->accept();

View File

@ -28,8 +28,12 @@ FormWell::FormWell(QWidget *parent, QString strWellName) :
ui->tableWidget->setRowCount(rowcount); //动态设置行数
//ui->tableWidget->verticalHeader()->setFixedWidth(3);//标题栏宽度
ui->tableWidget->horizontalHeader()->setFixedHeight(3);
ui->tableWidget->setStyleSheet( "QTableView::item:selected {color:#57595B; background:#E4E4E4;}");
//左右边框隐藏
ui->tableWidget->setStyleSheet("QTableView::item {border-left: 0px solid black;} \
QTableView::item:selected {border-left: 0px solid black; color:#57595B; background:#E4E4E4;}\
QTableView::item {border-right: 0px solid black;} \
QTableView::item:selected {border-right: 0px solid black;}");
//"QTableView::item:selected {color:#57595B; background:#E4E4E4;}"
// 假设你的类中有一个槽函数onTableRowsInserted(QModelIndex parent, int first, int last)
//connect(ui->tableWidget->model(), &QAbstractItemModel::columnsInserted,

View File

@ -89,7 +89,7 @@ MainWindow::MainWindow(QWidget *parent) :
connect(CallManage::getInstance(), SIGNAL(sig_ShowParameterCard(QString, QString)), this, SLOT(s_ShowParameterCard(QString, QString)));
//曲线
//关联信号槽,数据查看曲线数据
connect(CallManage::getInstance(), SIGNAL(sig_ShowCurve(QString, QString)), this, SLOT(s_ShowCurve(QString, QString)));
connect(CallManage::getInstance(), SIGNAL(sig_ShowCurve(QMap<QString,QList<QString>>)), this, SLOT(s_ShowCurve(QMap<QString,QList<QString>>)));
//关联信号槽,数据查看表格数据
connect(CallManage::getInstance(), SIGNAL(sig_ShowTable(QString, QString)), this, SLOT(s_ShowTable(QString, QString)));
@ -583,12 +583,21 @@ void MainWindow::s_ShowParameterCard(QString strSlfName, QString strName)
}
//曲线数据查看
void MainWindow::s_ShowCurve(QString strSlfName, QString strName)
void MainWindow::s_ShowCurve(QMap<QString,QList<QString>> mapShowObject)
{
if(m_centerWidgets)
{
QString strSlfName;
QString strName;
QList<QString> listShowSlfName = mapShowObject.keys();
if (listShowSlfName.size()>0)
{
strSlfName = listShowSlfName.at(0);
strName = mapShowObject[listShowSlfName.at(0)].at(0);
}
WellLogTableDialogNew* pDialog = new WellLogTableDialogNew();
pDialog->setName(strSlfName, strName, CURVE_OBJECT);
pDialog->setShowCurveName(strSlfName, strName, mapShowObject);
QString wellname;
QString path;
GetWellNameAndPath(strSlfName, wellname, path);

View File

@ -91,7 +91,7 @@ public slots:
//开发工具
void s_development();
void s_ShowParameterCard(QString strSlfName, QString strName);//参数卡数据查看
void s_ShowCurve(QString strSlfName, QString strName);//曲线数据查看
void s_ShowCurve(QMap<QString,QList<QString>> mapShowObject);//曲线数据查看
void s_ShowTable(QString strSlfName, QString strName);//表格数据查看
void s_ShowWave(QString strSlfName, QString strName); //波列数据查看
void s_WelllogInformation(QString strSlfName);//编辑测井信息

View File

@ -125,7 +125,71 @@ void PreQTableWidget::dropEvent(QDropEvent *event)
//新建表格曲线
emit CallManage::getInstance()->sig_AddTableLine(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="depthObject")
{
qDebug() << "新建深度";
//新建曲线
emit CallManage::getInstance()->sig_AddDepth(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="ganzhuangtuObject")
{
//新建杆状图
emit CallManage::getInstance()->sig_AddGanZhuangTu(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="JyktObject")
{
//新建井眼垮塌矢量图
emit CallManage::getInstance()->sig_AddJykt(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="DenvObject")
{
//新建井斜方位图
emit CallManage::getInstance()->sig_AddDenv(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="DrawImageObject")
{
//图像 成图
emit CallManage::getInstance()->sig_AddDrawImage(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="SantuyibiaoObject")
{
//斜井三图一表
emit CallManage::getInstance()->sig_AddSantuyibiao(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="CrackObject")
{
//裂缝
emit CallManage::getInstance()->sig_AddCrack(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="JiegutextObject")
{
//删除表格
// emit CallManage::getInstance()->sig_delTableLine(m_strUuid, strWellName, strTrackName, strLineName);
//气测/FMT/射孔/文本
emit CallManage::getInstance()->sig_AddJiegutext(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="LogfaceObject")
{
//删除表格
// emit CallManage::getInstance()->sig_delTableLine(m_strUuid, strWellName, strTrackName, strLineName);
//沉积相
emit CallManage::getInstance()->sig_AddLogface(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="MCalsObject")
{
//多臂井径
emit CallManage::getInstance()->sig_AddMCals(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="TubingstringObject")
{
//删除表格
// emit CallManage::getInstance()->sig_delTableLine(m_strUuid, strWellName, strTrackName, strLineName);
//套管组件
emit CallManage::getInstance()->sig_AddTubingstring(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
//
//m_listLineName.push_back(strLineName);
@ -190,7 +254,62 @@ void PreQTableWidget::dropEvent(QDropEvent *event)
//新建表格曲线
emit CallManage::getInstance()->sig_AddTableLine(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="depthObject")
{
qDebug() << "新建深度";
//新建曲线
emit CallManage::getInstance()->sig_AddDepth(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="ganzhuangtuObject")
{
//新建杆状图
emit CallManage::getInstance()->sig_AddGanZhuangTu(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="JyktObject")
{
//新建井眼垮塌矢量图
emit CallManage::getInstance()->sig_AddJykt(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="DenvObject")
{
//新建井斜方位图
emit CallManage::getInstance()->sig_AddDenv(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="DrawImageObject")
{
//图像 成图
emit CallManage::getInstance()->sig_AddDrawImage(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="SantuyibiaoObject")
{
//斜井三图一表
emit CallManage::getInstance()->sig_AddSantuyibiao(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="CrackObject")
{
//裂缝
emit CallManage::getInstance()->sig_AddCrack(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="JiegutextObject")
{
//气测/FMT/射孔/文本
emit CallManage::getInstance()->sig_AddJiegutext(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="LogfaceObject")
{
//沉积相
emit CallManage::getInstance()->sig_AddLogface(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="MCalsObject")
{
//多臂井径
emit CallManage::getInstance()->sig_AddMCals(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
else if(strType=="TubingstringObject")
{
//套管组件
emit CallManage::getInstance()->sig_AddTubingstring(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
}
//
//m_listLineName.push_back(strLineName);
@ -237,9 +356,10 @@ void PreQTableWidget::performDrag()
// 执行拖拽操作
m_AddSuc = false;
Qt::DropAction dropAction = drag->exec(Qt::MoveAction);
if (dropAction == Qt::MoveAction) { //&& m_AddSuc
if (dropAction == Qt::MoveAction)
{
// 处理拖拽结束的逻辑,例如从界面上移除拖拽的项
removeRow(iCurrentRow);
// removeRow(iCurrentRow);
if(strType=="curveObject")
{
//删除曲线
@ -252,12 +372,67 @@ void PreQTableWidget::performDrag()
}
else if(strType=="tableObject")
{
//删除波列
//删除表格
emit CallManage::getInstance()->sig_delTableLine(m_strUuid, formInfo->m_strWellName, formInfo->m_strTrackName, formInfo->m_strLineName);
}
else if(strType=="depthObject")
{
//深度
//
//m_listLineName.removeOne(formInfo->m_strLineName);
}
else if(strType=="ganzhuangtuObject")
{
//杆状图
}
else if(strType=="JyktObject")
{
//井眼垮塌矢量图
}
else if(strType=="DenvObject")
{
//井斜方位图
}
else if(strType=="DrawImageObject")
{
//图像 成图
}
else if(strType=="SantuyibiaoObject")
{
//斜井三图一表
}
else if(strType=="CrackObject")
{
//裂缝
}
else if(strType=="JiegutextObject")
{
//气测/FMT/射孔/文本
//删除表格
emit CallManage::getInstance()->sig_delTableLine(m_strUuid, formInfo->m_strWellName, formInfo->m_strTrackName, formInfo->m_strLineName);
}
else if(strType=="LogfaceObject")
{
//沉积相
//删除表格
emit CallManage::getInstance()->sig_delTableLine(m_strUuid, formInfo->m_strWellName, formInfo->m_strTrackName, formInfo->m_strLineName);
}
else if(strType=="MCalsObject")
{
//多臂井径
}
else if(strType=="TubingstringObject")
{
//套管组件
//删除表格
emit CallManage::getInstance()->sig_delTableLine(m_strUuid, formInfo->m_strWellName, formInfo->m_strTrackName, formInfo->m_strLineName);
}
}
}
}

View File

@ -4222,6 +4222,18 @@ void QMyCustomPlot::ClearSelectItems()
pGroup->setSelectRect(false);
}
}
else if (m_strLineName == "CORE_PHYSICS")
{
if(m_SelectShiftLine)
{
TransparentDraggableCorePhysics *tdCorePhysics = (TransparentDraggableCorePhysics*)this->m_SelectShiftLine;
QPen pen = tdCorePhysics->qcpItemLine->pen();
pen.setColor(tdCorePhysics->getCpLineColor());
tdCorePhysics->qcpItemLine->setPen(pen);
this->replot();
m_SelectShiftLine = nullptr;
}
}
//属性清空
PropertyService()->InitCurrentViewInfo();
}
@ -5070,7 +5082,7 @@ void QMyCustomPlot::s_changeDepthProperty(QVariantList vlist)
switch(temp)
{
case 0:
//
//
this->yAxis->setTickLabelPadding(5);
break;
case 1:

View File

@ -63,7 +63,7 @@ QtProjectWidgets::QtProjectWidgets(QWidget *parent)
// 设置选择模式为多选模式
ui->treeWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); // 或者使用 QAbstractItemView::MultiSelection
m_ReFlag = 0;
}
QtProjectWidgets::~QtProjectWidgets()
@ -76,6 +76,19 @@ QString QtProjectWidgets::getLeftTreeString()
return ui->treeWidget->getCurrentItemString();
}
void QtProjectWidgets::slotButtonCancel()
{
m_ReFlag=QDialogButtonBox::StandardButton::Cancel;
}
void QtProjectWidgets::slotButtonOk()
{
m_ReFlag=QDialogButtonBox::StandardButton::Yes;
}
void QtProjectWidgets::slotButtonNo()
{
m_ReFlag=QDialogButtonBox::StandardButton::No;
}
////初始化树图控件
//void QtProjectWidgets::initTreeWidget(QString fullPath, QString strProjectName)
//{
@ -937,7 +950,28 @@ void QtProjectWidgets::onShowParameterCard(bool checked)
//曲线数据查看
void QtProjectWidgets::onShowCurve(bool checked)
{
emit CallManage::getInstance()->sig_ShowCurve(m_strSlfName, m_strCurveObjectName);
m_mapShowObject.clear();
foreach(QTreeWidgetItem *pItem, ui->treeWidget->selectedItems())
{
QTreeWidgetItem *parentItem = pItem->parent()->parent(); // 上两层目录是井次
if (parentItem)
{
QString strSlfName = parentItem->data(0, Qt::UserRole+1).toString();
if (strSlfName.contains(".slf"))
{
QString strObjectName = pItem->text(0);
if(!m_mapShowObject.contains(strSlfName))
{
QList<QString> selList;
selList.clear();
m_mapShowObject.insert(strSlfName,selList);
}
m_mapShowObject[strSlfName].append(strObjectName);
}
}
}
if(m_mapShowObject.size()>0)
emit CallManage::getInstance()->sig_ShowCurve(m_mapShowObject);
}
//深度移动
@ -1160,41 +1194,169 @@ void QtProjectWidgets::onDeleteObject()
void QtProjectWidgets::onCopySelObject() // 复制
{
m_strCopySlfName = m_strSlfName; // 当前复制的对象Slf文件
m_strCopyCurveObjectName = m_strCurveObjectName; // 当前复制的对象名
m_mapCopyObject.clear();
foreach(QTreeWidgetItem *pItem, ui->treeWidget->selectedItems())
{
QTreeWidgetItem *parentItem = pItem->parent()->parent(); // 上两层目录是井次
if (parentItem)
{
QString strSlfName = parentItem->data(0, Qt::UserRole+1).toString();
if (strSlfName.contains(".slf"))
{
QString strObjectName = pItem->text(0);
if(!m_mapCopyObject.contains(strSlfName))
{
QList<QString> selList;
selList.clear();
m_mapCopyObject.insert(strSlfName,selList);
}
m_mapCopyObject[strSlfName].append(strObjectName);
}
}
}
}
void QtProjectWidgets::onPasteSelObject() // 粘贴
{
if (m_strCopySlfName == m_strSlfName)
int flag=0;
int check=0;
m_ReFlag=0;
QList<QString> listCopySlfName = m_mapCopyObject.keys();
for(int i= 0; i < listCopySlfName.size(); i++)
{
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.toLocal8Bit().data(),i++);
if (0>logio->FindObjectName(buf))
break;
}
logio->CopyObject(m_strCopyCurveObjectName.toLocal8Bit().data(), buf);
logio->Close();
delete logio;
foreach(QTreeWidgetItem *pItem, ui->treeWidget->selectedItems())
QString strCopySlfName = listCopySlfName.at(i);
QList<QString> listObjectName = m_mapCopyObject[listCopySlfName.at(i)];
if (strCopySlfName == m_strSlfName)
{
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;
CLogIO *logio=new CLogIO;
if(!logio->Open(m_strSlfName.toStdString().c_str(),CLogIO::modeReadWrite)) {
delete logio;
return;
}
for(int j= 0; j < listObjectName.size(); j++)
{
char buf[1000];
int nindex=1;
while(1) {
sprintf(buf,"%s_%d",listObjectName.at(j).toLocal8Bit().data(),nindex++);
if (0>logio->FindObjectName(buf))
break;
}
logio->CopyObject(listObjectName.at(j).toLocal8Bit().data(), buf);
}
logio->Close();
delete logio;
}
return;
else
{
for(int j= 0; j < listObjectName.size(); j++)
{
bool bExistence = false;
CLogIO *logio=new CLogIO;
if(!logio->Open(m_strSlfName.toStdString().c_str(),CLogIO::modeReadWrite)) {
delete logio;
return;
}
if (logio->FindObjectName(listObjectName.at(j).toLocal8Bit().data())>=0)
bExistence = true;
logio->Close();
delete logio;
if((!flag||!check)&&bExistence)
{
QDialog dialog(NULL);
Qt::WindowFlags flags = dialog.windowFlags();
flags |= Qt::WindowStaysOnTopHint;
flags &= ~Qt::WindowContextHelpButtonHint;
dialog.setWindowTitle("提示");
QString mess="已存在!\n 该功能只具覆盖或另创建能力,无法完成拼接操作。\n如需要进行拼接,请在图形区可视化编辑状态完成。\n请选择操作模式:\n";
QFormLayout form(&dialog);
form.addRow(new QLabel(listObjectName.at(j)+mess));
QCheckBox *pCheckBox=new QCheckBox("均按下列操作",&dialog);
form.addRow(pCheckBox);
QDialogButtonBox buttonBox(QDialogButtonBox::Yes |QDialogButtonBox::No | QDialogButtonBox::Cancel,
Qt::Horizontal, &dialog);
form.addRow(&buttonBox);
buttonBox.button(QDialogButtonBox::Yes)->setText(QString("覆盖"));
buttonBox.button(QDialogButtonBox::No)->setText(QString("增加"));
buttonBox.button(QDialogButtonBox::Cancel)->setText(QString("放弃"));
form.addRow(&buttonBox);
QObject::connect(buttonBox.button(QDialogButtonBox::Cancel), SIGNAL(clicked()), this, SLOT(slotButtonCancel()));
QObject::connect(buttonBox.button(QDialogButtonBox::Yes), SIGNAL(clicked()), this, SLOT(slotButtonOk()));
QObject::connect(buttonBox.button(QDialogButtonBox::No), SIGNAL(clicked()), this, SLOT(slotButtonNo()));
QObject::connect(&buttonBox, SIGNAL(accepted()), &dialog, SLOT(accept()));
QObject::connect(&buttonBox, SIGNAL(rejected()), &dialog, SLOT(reject()));
dialog.exec();
flag=m_ReFlag;
check=pCheckBox->checkState();
}
if (flag==QDialogButtonBox::Cancel)
{
QMessageBox::information(NULL,"Cancel","Cancel");
continue;
}
else if (flag==QDialogButtonBox::Yes)
{
CLogIO *logio=new CLogIO;
if(!logio->Open(m_strSlfName.toStdString().c_str(),CLogIO::modeReadWrite)) {
delete logio;
return;
}
logio->DeleteObject(listObjectName.at(j).toLocal8Bit().data());
logio->Close();
delete logio;
CObjWellLog* pcopyingwelllog= new CObjWellLog();
pcopyingwelllog->SetSlfFileName(strCopySlfName);
pcopyingwelllog->SetName(listObjectName.at(j));
pcopyingwelllog->CopyToSLFFile(m_strSlfName);
delete pcopyingwelllog;
}
else if (flag==QDialogButtonBox::No && bExistence)
{
CLogIO *logio=new CLogIO;
if(!logio->Open(m_strSlfName.toStdString().c_str(),CLogIO::modeReadWrite)) {
delete logio;
return;
}
char buf[1000];
int nindex=1;
while(1) {
sprintf(buf,"%s_%d",listObjectName.at(j).toLocal8Bit().data(),nindex++);
if (0>logio->FindObjectName(buf))
break;
}
logio->Close();
delete logio;
CObjWellLog* pcopyingwelllog= new CObjWellLog();
pcopyingwelllog->SetSlfFileName(strCopySlfName);
pcopyingwelllog->SetName(listObjectName.at(j));
pcopyingwelllog->CopyToSLFFile(m_strSlfName,false,buf);
delete pcopyingwelllog;
}
else if (!bExistence)
{
CObjWellLog* pcopyingwelllog= new CObjWellLog();
pcopyingwelllog->SetSlfFileName(strCopySlfName);
pcopyingwelllog->SetName(listObjectName.at(j));
pcopyingwelllog->CopyToSLFFile(m_strSlfName);
delete pcopyingwelllog;
}
}
}
}
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;
}
}
@ -1489,11 +1651,11 @@ void QtProjectWidgets::onItemClicked(QTreeWidgetItem* item, int index)
m_strSlfName = item->parent()->data(0, Qt::UserRole+1).toString();//从父节点井次获取slf
}
if (m_strCopySlfName != m_strSlfName)
if (m_mapCopyObject.size()==0)
m_action_Paste->setVisible(false);
else
m_action_Paste->setVisible(true);
//
if (qApp->mouseButtons() == Qt::RightButton) // 只针对鼠标右键,弹出菜单
{
if (NULL == popMenu)

View File

@ -24,6 +24,9 @@ private:
Ui::QtProjectWidgetsClass *ui;
public slots:
void slotButtonOk();
void slotButtonNo();
void slotButtonCancel();
//void s_initTreeWidget(QString strName);//初始化树图控件
void s_loadTreeWidget(QString fileFull);//加载树图
@ -85,7 +88,7 @@ public:
QMenu *_menuParCardFolder; //参数卡目录
QMenu *_menuWaveFolder; //波列目录
QAction* m_action_Paste; //
QAction* m_action_Paste; //
//根节点(项目名称)-右键菜单
QAction* m_action_New;
QAction* m_action_Open;
@ -99,8 +102,9 @@ public:
QString m_strSlfName;
QString m_strCurveObjectName;
QString m_strCopySlfName; // 当前复制的对象Slf文件
QString m_strCopyCurveObjectName; // 当前复制的对象名
QMap<QString,QList<QString>> m_mapShowObject;// 显示Slf文件里对象名
QMap<QString,QList<QString>> m_mapCopyObject;// 复制Slf文件里对象名
int m_ReFlag;
public:
void loadIndexSysTree(QTreeWidgetItem *parent, QString fileFull, QString prjname);