[井次]右键菜单添加[编辑测井信息]菜单

This commit is contained in:
zhaolei 2026-03-11 10:20:01 +08:00
parent 40aab5cde1
commit 663890c02b
25 changed files with 5954 additions and 84 deletions

View File

@ -0,0 +1,29 @@
/**
* @file CBaseDialog.h
* @date July 2, 2014
* @auto zhangjie
*/
#ifndef CBaseDialog_H
#define CBaseDialog_H
#include <QDialog.h>
#include "OSGFramework.h"
#pragma warning( push ,0)
#pragma warning( pop )
class OSGFRAMEWORK_EXPORT CBaseDialog : public QDialog
{
Q_OBJECT
public:
CBaseDialog(QWidget *parent = 0, Qt::WindowFlags flags = 0)
:QDialog(parent, flags)
{
};
~CBaseDialog(void)
{
};
virtual void ReFreshWindow(int type=0)
{
}
};
#endif /* PAITABLEWIDGET_H_ */

View File

@ -0,0 +1,10 @@
#ifdef _WIN32
#ifdef OSGWELLLOGUI_LIB
#define EDITPLOTHEADER_EXPORT __declspec(dllexport)
#else
#define EDITPLOTHEADER_EXPORT __declspec(dllimport)
#endif
#else
#define EDITPLOTHEADER_EXPORT
#endif

View File

@ -0,0 +1,73 @@
#ifndef WELLLOGINFORMATION_H
#define WELLLOGINFORMATION_H
//using namespace Ui;
#include <QWidget>
#include "BaseDialog.h"
#include "EditPlotHeader.h"
#include <QButtonGroup>
#include "ObjWelllogRound.h"
#pragma execution_character_set("utf-8")
using namespace pai;
using namespace pai::datamodel;
namespace Ui
{
class WellLogInformationClass;
}
namespace pai
{
namespace gui
{
//class CustomLineEdit;
class EDITPLOTHEADER_EXPORT WellLogInformation : public /*CBaseDialog*/ QDialog
{
Q_OBJECT
public:
WellLogInformation(QWidget *parent = 0, Qt::WindowFlags flags = 0);
~WellLogInformation();
void SetWelllogRound(CObjWelllogRound*);
CObjWelllogRound* GetWelllogRound();
int CreateTable(CLogIO *);
protected:
//bool eventFilter(QObject * pObject, QEvent * pEvent) override;
private slots:
void OnSave();
void OnCAddCurve();
void OnSAddCurve();
void OnCDeleteCurve();
void OnSDeleteCurve();
void OnCalcTemp();
private:
void ReadWellP(QString szText,QLineEdit* pStart,QLineEdit* pEnd);
void ReadCustomWell(const Slf_FILE_MESSAGE& rMessage);
void ReadCementationWell(const Slf_FILE_MESSAGE& rMessage);
void ReadProduceWell(const Slf_FILE_MESSAGE& rMessage);
void ReadTable(QString tablename);
void WriteTable(CLogIO *,int);
void GetValueTable(CLogIO * pLogio,Slf_TABLE_FIELD *pFieldInfo,int nTableFlag,int nRow,int nColumn ,char*);
QString
GetStringtValueInTable(CLogIO * pLogio,Slf_TABLE_FIELD *pFieldInfo,int nTableFlag,int nRow,int nColumn,char*);
void SetItemValue(CLogIO * pLogio,int nTableFlag,const QString& szKey,const QString& szValue,int nRow,int nCol,char*);
void SetItemValue(CLogIO * pLogio,int nTableFlag,const QString& szKey,
const QString& szValue1,const QString& szValue2,int nRow,int nCol,char*);
private:
Ui::WellLogInformationClass* m_pUi;
CObjWelllogRound* m_pObjWelllogRound;
};
}
}
#endif // WELLLOGINFORMATION_H

View File

@ -0,0 +1,90 @@
#-------------------------------------------------
#
# Project created by QtCreator 2024-07-11T18:44:51
#
#-------------------------------------------------
QT += core gui widgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = EditPlotHeader
TEMPLATE = lib
# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
#DEFINES += _WINDOWS
DEFINES += OSGWELLLOGUI_LIB
DEFINES += _TIMESPEC_DEFINED
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
CONFIG += console \
# static \
c++11 \
shared\
dll
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
CONFIG(debug, debug|release){
DESTDIR = ../../Bin
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
} else {
DESTDIR = ../../Bin
TARGET = $$join(TARGET,,,)
}
FORMS += \
wellloginformation.ui
SOURCES += ../src/customlistwidget.cpp \
../../common/geometryutils.cpp \
wellloginformation.cpp
HEADERS += \
../../common/geometryutils.h \
../include/BaseObject.h \
../include/ObjWelllog.h \
../include/ObjWelllogTABLE.h \
../include/wellloginformation.h \
customlistwidget.h
INCLUDEPATH += ../include
INCLUDEPATH += ../CallManage
INCLUDEPATH += ../../Slfio/include
INCLUDEPATH += ../../common
INCLUDEPATH += ../../BaseFun/include
INCLUDEPATH += ../../OSGDataModel/include
INCLUDEPATH += ../../DataMgr/include
INCLUDEPATH += ../../OSGFramework/include
INCLUDEPATH += ../../Workflow/include
INCLUDEPATH += ../../Workflow/WFCrystal/Crystal/include
INCLUDEPATH += ../../Workflow/WFCrystal/Plugin/include
INCLUDEPATH += ../../Workflow/WFCrystal/SysUtility/utils/include
INCLUDEPATH += ../../Workflow/WFEngine/IOService/include
INCLUDEPATH += ../../Workflow/WFEngine/Module/include
INCLUDEPATH += ../../Workflow/WFEngine/Component/WorkflowWidget/include
INCLUDEPATH += ../../Workflow/WFEngine/ObjectModel/ObjectModel/include
INCLUDEPATH += ../../Workflow/WFEngine/WorkflowEngine/include
INCLUDEPATH += ../../Workflow/WFEngine/ObjectModel/ObjectModelBase/include
INCLUDEPATH += ../../Workflow/WFWidget/include
CONFIG(debug, debug|release){
LIBS += -L../../Bin -lslfiod
LIBS += -L../../Bin -lOSGDataModeld
} else {
LIBS += -L../../Bin -lslfio
LIBS += -L../../Bin -lOSGDataModel
}

View File

@ -0,0 +1,21 @@
#include "customlistwidget.h"
#include <QKeyEvent>
CustomListWidget::CustomListWidget(QWidget *parent)
: QListWidget(parent)
{
}
CustomListWidget::~CustomListWidget()
{
}
void CustomListWidget::keyPressEvent(QKeyEvent * pEvent)
{
QListWidget::keyPressEvent(pEvent);
if(pEvent->key()==Qt::Key_Delete)
{
emit SignalDelete();
}
}

View File

@ -0,0 +1,21 @@
#ifndef CUSTOMLISTWIDGET_H
#define CUSTOMLISTWIDGET_H
#include <QListWidget>
class CustomListWidget : public QListWidget
{
Q_OBJECT
public:
CustomListWidget(QWidget *parent=NULL);
~CustomListWidget();
signals:
void SignalDelete();
protected:
virtual void keyPressEvent(QKeyEvent *);
private:
};
#endif // CUSTOMLISTWIDGET_H

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -81,7 +81,7 @@ public:
*/
// virtual bool Serialize( CObjectArchive &ar ) = 0;
virtual void Delete() = 0;
// virtual void Delete() = 0;
/**
* @brief Add a child object in general way.
@ -107,7 +107,7 @@ public:
/**
* @brief
*/
virtual void DeleteAllChild() = 0;
// virtual void DeleteAllChild() = 0;
PaiObject *GetPaiObject()
{

View File

@ -20,7 +20,7 @@ class OSGDATAMODEL_EXPORT CObjWelllogRound : public CBaseObject/*CBaseObjectImp
{
// Q_OBJECT
public:
// CObjWelllogRound();
CObjWelllogRound();
~CObjWelllogRound();
@ -50,7 +50,7 @@ public:
virtual void CopyFrom( CBaseObject *pOSGObjectOther );
QString GetSlfFileName() const { return m_strAttachedSlfFile; }
// void SetSlfFileName(QString val);
void SetSlfFileName(QString val);
CObjWell *GetWell();
void SetWell(CObjWell *pWell);
// QString GetWellRoundPath();

View File

@ -144,17 +144,17 @@ void CObjWelllogRound::SetWell(CObjWell *pWell)
m_pWell=pWell;
}
// CObjWelllogRound::CObjWelllogRound()
// {
// SetIconName( "icon/WellRound.png");
// m_pObject = NULL;
// m_pWell=NULL;
// isFLAG=false;
// }
// void CObjWelllogRound::SetSlfFileName(QString val)
// {
// QString oldf=m_strAttachedSlfFile;
// m_strAttachedSlfFile=val;
CObjWelllogRound::CObjWelllogRound()
{
// SetIconName( "icon/WellRound.png");
// m_pObject = NULL;
m_pWell=NULL;
isFLAG=false;
}
void CObjWelllogRound::SetSlfFileName(QString val)
{
QString oldf=m_strAttachedSlfFile;
m_strAttachedSlfFile=val;
// std::vector<CBaseObject*> PaiObjects;
// CPaiObjectHelper::RecursionGetAllChildren(this,PaiObjects );
// for(int j=0;j<PaiObjects.size();j++) {
@ -208,7 +208,7 @@ void CObjWelllogRound::SetWell(CObjWell *pWell)
// }
// }
// }
// }
}
CObjWelllogRound::~CObjWelllogRound()
{

View File

@ -3379,9 +3379,7 @@ int CSlfIO::FindSlfObjectIndex(const char* namee,int status)
char name[128];
strcpy(name,namee);
for(int i=0;i<m_SlfHead.TableNumber;i++) {
QString strName =QString::fromLocal8Bit(m_SlfObjectEntry[i].Name);
QString strHZName =QString::fromLocal8Bit(m_SlfObjectEntry[i].HZName);
if(stricmp(name,strName.toStdString().c_str())==0||stricmp(name,strHZName.toStdString().c_str())==0) {
if(stricmp(name,m_SlfObjectEntry[i].Name)==0||stricmp(name,m_SlfObjectEntry[i].HZName)==0) {
if(status==-1) return i;
if(status==m_SlfObjectEntry[i].Status) return i;
}

View File

@ -2612,7 +2612,7 @@ void GridDataAdapter::initTableWellLogData(DType type,QList<CObjWellLog*> WellLo
return ;
}
char name[100];
strcpy(name,m_pWellLogs[0]->GetName().toStdString().c_str());
strcpy(name,m_pWellLogs[0]->GetName().toLocal8Bit().toStdString().c_str());
int iIndex=logio->OpenTable(name);
if (iIndex >=0)
{
@ -2746,7 +2746,7 @@ void GridDataAdapter::updatetTableWellLogData()
return ;
}
char name[100];
strcpy(name,m_pWellLogs[0]->GetName().toStdString().c_str());
strcpy(name,m_pWellLogs[0]->GetName().toLocal8Bit().toStdString().c_str());
int iIndex=logio->OpenTable(name);
if (iIndex >=0)
{

View File

@ -219,6 +219,7 @@ INCLUDEPATH += ../../Workflow/WFEngine/ObjectModel/ObjectModel/include
INCLUDEPATH += ../../Workflow/WFEngine/WorkflowEngine/include
INCLUDEPATH += ../../Workflow/WFEngine/ObjectModel/ObjectModelBase/include
INCLUDEPATH += ../../Workflow/WFWidget/include
INCLUDEPATH += ../../EditPlotHeader/include
CONFIG(debug, debug|release){
LIBS += -L../../Bin -lBaseFund
@ -233,6 +234,7 @@ CONFIG(debug, debug|release){
LIBS += -L../../Bin/ -lDrawBased
LIBS += -L../../Bin/ -lLogModuleConsoled
LIBS += -L../../Bin/ -lWFEngined
LIBS += -L../../Bin/ -lEditPlotHeaderd
#-lCallManaged
} else {
LIBS += -L../../Bin -lBaseFun
@ -247,5 +249,6 @@ CONFIG(debug, debug|release){
LIBS += -L../../Bin/ -lDrawBase
LIBS += -L../../Bin/ -lLogModuleConsole
LIBS += -L../../Bin/ -lWFEngine
LIBS += -L../../Bin/ -lEditPlotHeader
#-lCallManage
}

View File

@ -22,7 +22,9 @@
#include "fileopenthread.h"
#include "ObjWellLogINP.h"
#include "TxtEditorDlg.h"
#include "ObjWell.h"
#include "wellloginformation.h"
using namespace pai::gui;
//以下参数从配置文件读取
int g_iIndex = 0;
int g_iNum = 0;
@ -571,72 +573,30 @@ void MainWindow::s_WelllogInformation(QString strSlfName)
{
if(m_centerWidgets)
{
// pai::gui::WellLogInformation* pWellLogInformation=new pai::gui::WellLogInformation;
// pWellLogInformation->exec();
// pWellLogInformation->SetWelllogRound(pWelllogRound);
CLogIO * pLogio=new CLogIO();
if(!pLogio->Open(strSlfName.toStdString().c_str(),CSlfIO::modeReadWrite))
{
QMessageBox::information(nullptr,QString::fromLocal8Bit("提示"),QString::fromLocal8Bit("存储失败!"));
delete pLogio;
return;
}
// pWellLogInformation->CreateTable(pLogio);
WellLogInformation* pWellLogInformation=new WellLogInformation;
CObjWelllogRound* pWelllogRound = new CObjWelllogRound;
CObjWell* pWell = new CObjWell;
QString wellname;QString path;
GetWellNameAndPath(strSlfName, wellname, path);
// m_centerWidgets->addTab(pWellLogInformation, wellname + ":测井信息" );
// int iCount = m_centerWidgets->count();
// m_centerWidgets->m_pTabBar->setCurrentIndex(iCount-1);
QDir dir(path);
QStringList filters;
filters << "*.well"; // 查找扩展名为.well的文件
dir.setNameFilters(filters);
QStringList fileNames = dir.entryList(QDir::Files);
foreach (const QString &fileName, fileNames) {
pWell->SetWellFileName(path + "/" + fileName);
}
pWelllogRound->SetWell(pWell);
int nTableFlag =pLogio->OpenTable("wellloginformation");
if(nTableFlag!=-1)
{
s_ShowTable(strSlfName, "wellloginformation");
pWelllogRound->SetSlfFileName(strSlfName);
pWellLogInformation->SetWelllogRound(pWelllogRound);
// pWellLogInformation->exec();
m_centerWidgets->addTab(pWellLogInformation, wellname + ":" + "WellLogInformation");
int iCount = m_centerWidgets->count();
m_centerWidgets->m_pTabBar->setCurrentIndex(iCount-1);
return;
}
QString szColumnName;
szColumnName+=("缩写");szColumnName+=",";
szColumnName+=("");szColumnName+=",";
szColumnName+=("单位");szColumnName+=",";
szColumnName+=("中文名");szColumnName+=",";
QString szDataType;
szDataType+="6,6,6,6";
QString szSize;
szSize+="64,128,64,128";
QString szRemark;
szRemark+="0,0,0,0";
nTableFlag =pLogio->Open_Set_Table("wellloginformation",
TABLEE_OBJECT,
4,
szColumnName.toLocal8Bit().data(),
// szColumnName.toStdString().c_str(),
szSize.toLocal8Bit().data(),
szDataType.toLocal8Bit().data(),
szRemark.toLocal8Bit().data());
int nTableColumn=pLogio->GetTableFieldCount(nTableFlag);
Slf_TABLE_FIELD *pFieldInfo=new Slf_TABLE_FIELD[nTableColumn+1];
pLogio->GetTableFieldInfo(nTableFlag,pFieldInfo);
char pArr[100];
strcpy(pArr, "WN");
pLogio->SetTableFieldData(nTableFlag,0,pArr,1);//缩写
strcpy(pArr, wellname.toStdString().c_str());
pLogio->SetTableFieldData(nTableFlag,1,pArr,1);//单位
strcpy(pArr, "NONE");
pLogio->SetTableFieldData(nTableFlag,2,pArr,1);//井名
strcpy(pArr, QString("井名").toLocal8Bit());
pLogio->SetTableFieldData(nTableFlag,3,pArr,1);
s_ShowTable(strSlfName, "wellloginformation");
}
}

View File

@ -20,7 +20,8 @@ https://www.cnblogs.com/ys0103/p/4562493.html
17.DataOutput--内存分配问题windows兼容
18.tran\SLFAscIIConvertor
19.DrawBase
20.logPlus
20.EditPlotHeader
21.logPlus
powershell统计代码行数