From 59ac718dffa79565b035098ecdc9bc4f6128ccb1 Mon Sep 17 00:00:00 2001 From: zhaolei <353719554@qq.com> Date: Mon, 8 Jun 2026 15:45:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B7=A6=E4=BE=A7=E6=A0=91?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=8A=9F=E8=83=BD=E5=92=8C=E5=8F=8C=E5=87=BB?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E6=95=B0=E6=8D=AE=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logPlus/qtprojectwidgets.cpp | 115 +++++++++++++++++++++++++++++++++++ logPlus/qtprojectwidgets.h | 4 +- 2 files changed, 118 insertions(+), 1 deletion(-) diff --git a/logPlus/qtprojectwidgets.cpp b/logPlus/qtprojectwidgets.cpp index 12ae797..c5edcb9 100644 --- a/logPlus/qtprojectwidgets.cpp +++ b/logPlus/qtprojectwidgets.cpp @@ -75,8 +75,10 @@ QtProjectWidgets::QtProjectWidgets(QWidget *parent) //为树 tree 创建信号槽,鼠标press时会触发对应的信号。 connect(ui->treeWidget, &QTreeWidget::itemPressed, this, &QtProjectWidgets::onItemClicked); + connect(ui->treeWidget, &QTreeWidget::itemDoubleClicked, this, &QtProjectWidgets::onItemDoubleClicked); connect(ui->treeWidget, SIGNAL(closeTreeEditor()), this, SLOT(oncloseTreeEditor())); + connect(ui->lineEdit, &QLineEdit::textChanged, this, &QtProjectWidgets::on_textChanged); //connect(ui->treeWidget, &QTreeWidget::itemChanged, this, &QtProjectWidgets::onItemChanged); // 设置选择模式为多选模式 @@ -829,6 +831,16 @@ void QtProjectWidgets::initWellsTreeMenu(QMenu *menu, QTreeWidget *treeWidget) connect(action_New, SIGNAL(triggered(bool)), this, SLOT(onCopyObject())); menu->addAction(action_New); + action_New = new QAction("升序", treeWidget); + action_New->setIcon(QIcon(GetImagePath() + "icon/AscendingOrder.png")); // 设置图标 + connect(action_New, SIGNAL(triggered(bool)), this, SLOT(slotAsendSort())); + menu->addAction(action_New); + + action_New = new QAction("降序", treeWidget); + action_New->setIcon(QIcon(GetImagePath() + "icon/DescendingOrder.png")); // 设置图标 + connect(action_New, SIGNAL(triggered(bool)), this, SLOT(slotDesendSort())); + menu->addAction(action_New); + action_New = new QAction("输出数据", treeWidget); action_New->setIcon(QIcon(GetImagePath() + "icon/outcurves.png")); // 设置图标 connect(action_New, SIGNAL(triggered(bool)), this, SLOT(onOutWellLogRound())); @@ -2585,6 +2597,82 @@ void QtProjectWidgets::onCopyObject() return; } +// 左侧树搜索 +void QtProjectWidgets::on_textChanged(const QString &text) +{ + bool bHidden = !text.isEmpty(); + QTreeWidgetItem *item = ui->treeWidget->topLevelItem(0); + int childCount = item->childCount(); // 获取子节点数量 + for (int i = 0; i < childCount; ++i) + { + //井组,数据分析... + QTreeWidgetItem *wellGroupItem = item->child(i); + QString wellGroupname = wellGroupItem->text(0); + if (wellGroupname == "井组") + { + int wellCount = wellGroupItem->childCount(); // 获取井节点数量 + for (int j = 0; j < wellCount; ++j) + { + //井组,数据分析... + QTreeWidgetItem *wellItem = wellGroupItem->child(j); + wellItem->setHidden(bHidden); + QString strName = wellItem->text(0); + strName = strName.toUpper(); + if (!text.isEmpty() && strName.contains(text.toUpper())) + { + wellItem->setHidden(false); + ui->treeWidget->expandItem(wellGroupItem); + continue; + } + + // 获取井次节点数量 + int wellLogCount = wellItem->childCount(); + for (int k = 0; k < wellLogCount; ++k) + { + QTreeWidgetItem *wellLogItem = wellItem->child(k); + int wellLogCountChild = wellLogItem->childCount(); + wellLogItem->setHidden(bHidden); + strName = wellLogItem->text(0); + strName = strName.toUpper(); + if (!text.isEmpty() && strName.contains(text.toUpper())) + { + wellLogItem->setHidden(false); + ui->treeWidget->expandItem(wellItem); + continue; + } + for (int m = 0; m < wellLogCountChild; ++m) + { + QTreeWidgetItem *wellObject = wellLogItem->child(m); + wellObject->setHidden(bHidden); + int wellObjectCount = wellObject->childCount(); + for (int n = 0; n < wellObjectCount; ++n) + { + QTreeWidgetItem *Object = wellObject->child(n); + Object->setHidden(bHidden); + QString strName = Object->text(0); + strName = strName.toUpper(); + if (!text.isEmpty() && strName.contains(text.toUpper())) + { + item->setHidden(false); + wellGroupItem->setHidden(false); + wellItem->setHidden(false); + wellLogItem->setHidden(false); + wellObject->setHidden(false); + ui->treeWidget->expandItem(wellGroupItem); + ui->treeWidget->expandItem(wellItem); + ui->treeWidget->expandItem(wellLogItem); + ui->treeWidget->expandItem(wellObject); + Object->setHidden(false); + continue; + } + } + } + } + } + } + } +} + //点击树图节点 void QtProjectWidgets::onItemClicked(QTreeWidgetItem* item, int index) { @@ -2688,6 +2776,33 @@ void QtProjectWidgets::onItemClicked(QTreeWidgetItem* item, int index) } } +//双击显示 +void QtProjectWidgets::onItemDoubleClicked(QTreeWidgetItem* item, int index) +{ + QString strTreeTag = item->data(0, Qt::UserRole).toString(); + if (strTreeTag == "curveObject"){ + //曲线对象(AC、BS...) + onShowCurve(true); + } + else if (strTreeTag == "TDTObject"){ + //TDT + onShowTDT(true); + } + else if (strTreeTag == "waveObject"){ + //波列对象 + onShowWave(true); + } + else if (strTreeTag == "cardObject"){ + //参数卡对象 + onShowParameterCard(true); + } + else if (strTreeTag == "tableObject") + { + //表格对象 + onShowTable(true); + } +} + //勾选/不勾选树图节点 void QtProjectWidgets::onItemChanged(QTreeWidgetItem* item, int index) { diff --git a/logPlus/qtprojectwidgets.h b/logPlus/qtprojectwidgets.h index 32aea54..e3239fe 100644 --- a/logPlus/qtprojectwidgets.h +++ b/logPlus/qtprojectwidgets.h @@ -37,9 +37,11 @@ public slots: //void s_initTreeWidget(QString strName);//初始化树图控件 void s_loadTreeWidget(QString fileFull);//加载树图 - + void on_textChanged(const QString &text); void onItemClicked(QTreeWidgetItem* item, int index);//鼠标点击tree菜单项 + void onItemDoubleClicked(QTreeWidgetItem* item, int index);//鼠标双击tree菜单项 void onItemChanged(QTreeWidgetItem* item, int index);//勾选/不勾选 + void oncloseTreeEditor(); //重命名 //工区管理(项目)