1.追加波列数据校深 2.左侧树图支持ctrl键多选

This commit is contained in:
jiayulong 2026-01-21 11:55:21 +08:00
parent da29d6680a
commit 359fd529f1
2 changed files with 49 additions and 7 deletions

View File

@ -58,6 +58,10 @@ QtProjectWidgets::QtProjectWidgets(QWidget *parent)
//为树 tree 创建信号槽鼠标press时会触发对应的信号。 //为树 tree 创建信号槽鼠标press时会触发对应的信号。
connect(ui->treeWidget, &QTreeWidget::itemPressed, this, &QtProjectWidgets::onItemClicked); connect(ui->treeWidget, &QTreeWidget::itemPressed, this, &QtProjectWidgets::onItemClicked);
//connect(ui->treeWidget, &QTreeWidget::itemChanged, this, &QtProjectWidgets::onItemChanged); //connect(ui->treeWidget, &QTreeWidget::itemChanged, this, &QtProjectWidgets::onItemChanged);
// 设置选择模式为多选模式
ui->treeWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); // 或者使用 QAbstractItemView::MultiSelection
} }
QtProjectWidgets::~QtProjectWidgets() QtProjectWidgets::~QtProjectWidgets()
@ -622,6 +626,10 @@ void QtProjectWidgets::initMenu()
_menuCurveObject = new QMenu(ui->treeWidget); _menuCurveObject = new QMenu(ui->treeWidget);
initCurveObjectTreeMenu(_menuCurveObject, ui->treeWidget); initCurveObjectTreeMenu(_menuCurveObject, ui->treeWidget);
//波列对象-右键菜单
_menuWaveObject = new QMenu(ui->treeWidget);
initWaveObjectTreeMenu(_menuWaveObject, ui->treeWidget);
//表格对象-右键菜单 //表格对象-右键菜单
_menuTableObject = new QMenu(ui->treeWidget); _menuTableObject = new QMenu(ui->treeWidget);
initTableObjectTreeMenu(_menuTableObject, ui->treeWidget); initTableObjectTreeMenu(_menuTableObject, ui->treeWidget);
@ -671,6 +679,20 @@ void QtProjectWidgets::initCurveObjectTreeMenu(QMenu *menu, QTreeWidget *treeWid
menu->addAction(m_action_DepthShift); menu->addAction(m_action_DepthShift);
} }
//初始化波列对象-右键菜单
void QtProjectWidgets::initWaveObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget)
{
// QAction* action_WaveObject = new QAction("数据查看", treeWidget);
// action_WaveObject->setIcon(QIcon(GetImagePath() + "icon/Sheet.png")); // 设置图标
// connect(action_WaveObject, SIGNAL(triggered(bool)), this, SLOT(onShowWave(bool)));
// menu->addAction(action_WaveObject);
//
QAction* action_DepthShift = new QAction("深度移动", treeWidget);
action_DepthShift->setIcon(QIcon(GetImagePath() + "icon/RigidDepthShifting.png")); // 设置图标
connect(action_DepthShift, SIGNAL(triggered(bool)), this, SLOT(onDepthShift(bool)));
menu->addAction(action_DepthShift);
}
//初始化表格对象-右键菜单 //初始化表格对象-右键菜单
void QtProjectWidgets::initTableObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget) void QtProjectWidgets::initTableObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget)
{ {
@ -805,11 +827,27 @@ void QtProjectWidgets::onDepthShift(bool checked)
} }
} }
//emit CallManage::getInstance()->sig_DepthShift(m_strSlfName, m_strCurveObjectName, depthshift); //支持多选
foreach(QTreeWidgetItem *item, ui->treeWidget->selectedItems())
{
QString strTreeTag = item->data(0, Qt::UserRole).toString();
if (strTreeTag == "curveObject" || strTreeTag=="waveObject" || strTreeTag == "tableObject")
{
QString strLineName = item->text(0);
QString strSlfName = item->data(0, Qt::UserRole+1).toString();
//
ApplyShiftDepth(strSlfName, strLineName, depthshift);
}
}
}
void QtProjectWidgets::ApplyShiftDepth(QString strSlfName, QString strLineName, double DepthOffset)
{
//1.修改内存数据 //1.修改内存数据
if(m_strSlfName=="") return ; if(strSlfName=="") return ;
CMemRdWt * logio=new CMemRdWt(); CMemRdWt * logio=new CMemRdWt();
if(!logio->Open(m_strSlfName.toStdString().c_str(),CSlfIO::modeReadWrite)) if(!logio->Open(strSlfName.toStdString().c_str(),CSlfIO::modeReadWrite))
{ {
delete logio; delete logio;
//AppendConsole(pai::log::PAI_ERROR,"SLF文件打开失败请检查"); //AppendConsole(pai::log::PAI_ERROR,"SLF文件打开失败请检查");
@ -817,12 +855,12 @@ void QtProjectWidgets::onDepthShift(bool checked)
}; };
bool isok=0; bool isok=0;
//TODO 目前对于表格类,参数卡类不支持,会崩溃 //TODO 目前对于表格类,参数卡类不支持,会崩溃
int curveindex=logio->FindObjectName((char *)m_strCurveObjectName.toStdString().c_str()); int curveindex=logio->FindObjectName((char *)strLineName.toStdString().c_str());
if(curveindex>=0) { if(curveindex>=0) {
CString szBuffer=""; CString szBuffer="";
szBuffer=QString::number(depthshift,'f',3)+"\r\n"; szBuffer=QString::number(DepthOffset,'f',3)+"\r\n";
WriteShiftMessage(*logio,szBuffer,m_strCurveObjectName); WriteShiftMessage(*logio,szBuffer,strLineName);
logio->CorrectObjectDepth(curveindex, depthshift); logio->CorrectObjectDepth(curveindex, DepthOffset);
isok=1; isok=1;
} }
delete logio; delete logio;

View File

@ -40,6 +40,7 @@ public slots:
//曲线 //曲线
void onShowCurve(bool checked = false); //数据查看 void onShowCurve(bool checked = false); //数据查看
void ApplyShiftDepth(QString strSlfName, QString strLineName, double DepthOffset);
void onDepthShift(bool checked = false); //深度移动 void onDepthShift(bool checked = false); //深度移动
//表格 //表格
void onShowTable(bool checked = false); //数据查看 void onShowTable(bool checked = false); //数据查看
@ -60,6 +61,7 @@ public:
//右键菜单 //右键菜单
QMenu *_menuRoot; QMenu *_menuRoot;
QMenu *_menuCurveObject; //曲线对象(AC、BS...) QMenu *_menuCurveObject; //曲线对象(AC、BS...)
QMenu *_menuWaveObject; //波列对象
QMenu *_menuTableObject; //表格对象 QMenu *_menuTableObject; //表格对象
QMenu *_menuWellName; //井名 QMenu *_menuWellName; //井名
QMenu *_menuSlfName; //井次 QMenu *_menuSlfName; //井次
@ -89,6 +91,8 @@ public:
void initRootTreeMenu(QMenu *menu, QTreeWidget *treeWidget); void initRootTreeMenu(QMenu *menu, QTreeWidget *treeWidget);
//初始化曲线对象(AC、BS...)-右键菜单 //初始化曲线对象(AC、BS...)-右键菜单
void initCurveObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget); void initCurveObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget);
//初始化波列对象-右键菜单
void initWaveObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget);
//初始化表格对象-右键菜单 //初始化表格对象-右键菜单
void initTableObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget); void initTableObjectTreeMenu(QMenu *menu, QTreeWidget *treeWidget);
//初始化根节点(井名称)-右键菜单 //初始化根节点(井名称)-右键菜单