From 108c753eb547d2ad560554820701092bf5c653eb Mon Sep 17 00:00:00 2001 From: jiayulong Date: Thu, 20 Nov 2025 09:32:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B3=A2=E5=88=97=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=9A=84=E5=8F=AF=E8=A7=86=E5=8C=96=EF=BC=8C=E5=8F=AF?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E8=B0=83=E8=89=B2=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CallManage/CallManage.h | 2 + common/geometryutils.cpp | 186 +++++++++++++++++++++++++++++++++++ common/geometryutils.h | 122 +++++++++++++++++++++++ logPlus/formdraw.cpp | 70 ++++++++++++- logPlus/formdraw.h | 1 + logPlus/forminfo.cpp | 22 ++++- logPlus/preqtablewidget.cpp | 75 +++++++++----- logPlus/qmycustomplot.cpp | 1 + logPlus/qtprojectwidgets.cpp | 46 ++++----- 9 files changed, 473 insertions(+), 52 deletions(-) diff --git a/CallManage/CallManage.h b/CallManage/CallManage.h index ccf1055..90dba82 100644 --- a/CallManage/CallManage.h +++ b/CallManage/CallManage.h @@ -49,6 +49,8 @@ signals: //新建波列 void sig_AddWave(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strWaveName); + //删除波列 + void sig_delWave(QString strUuid, QString strWellName, QString strTrackName, QString strLineName); //属性 //左刻度 diff --git a/common/geometryutils.cpp b/common/geometryutils.cpp index 5d244c2..7bedbda 100644 --- a/common/geometryutils.cpp +++ b/common/geometryutils.cpp @@ -818,3 +818,189 @@ bool getAliasNameFromIni(QString CurveName, QString &strAliasName, QString &strU return finished; } + +int getSystemColorNumber(QStringList &names) +{ + QString strImagePath; + QString strPathTmp = QCoreApplication::applicationDirPath() + QDir::separator(); + strImagePath = QDir::toNativeSeparators( strPathTmp ); + QString filecfg=strImagePath+"image"+QDir::separator()+"colortable"+QDir::separator()+"colortable.cfg"; + FILE *fp1=fopen(filecfg.toStdString().c_str(),"rt"); + if(!fp1) return -1; + char buf[100]; + QString str; + int i=0; + while(!feof(fp1)) { + fscanf(fp1,"%s",buf); + str=buf; + //读取全部 + //if(str.indexOf("custom",Qt::CaseInsensitive)>=0) continue; + names.push_back(str); + i++; + } + fclose(fp1); + return i; +} + +int getSystemColor(int nIndex,QVector &colorList,bool inpolation) +{ + colorList.clear(); + MyColorItem itemColor; + QString strImagePath; + QString strPathTmp = QCoreApplication::applicationDirPath() + QDir::separator(); + strImagePath = QDir::toNativeSeparators( strPathTmp ); + QString filecfg=strImagePath+"image"+QDir::separator()+"colortable"+QDir::separator()+"colortable.cfg"; + FILE *fp1=fopen(filecfg.toStdString().c_str(),"rt"); + if(!fp1) return -1; + char buf[100]; + QString str; + int i=0; + while(!feof(fp1)) { + fscanf(fp1,"%s",buf); + if(i>=nIndex) { + str=buf; + break; + } + i++; + } + fclose(fp1); + if(str.isEmpty()) return -1; + QString filename=strImagePath+"image"+QDir::separator()+"colortable"+QDir::separator()+str; + FILE *fp=fopen(filename.toStdString().c_str(),"rt"); + if(!fp) return -1; + float r,g,b; + QStringList strs; + int colornum=0; + while(!feof(fp)) { + char *ret=fgets(buf,100,fp); + if(!ret) break; + str=buf; + str.replace("\r",""); + str.replace("\n",""); + str.replace("\t"," "); + if(str.indexOf("#")>-1) continue; + if(str.indexOf("=")>-1) continue; + if(str.indexOf("R",Qt::CaseInsensitive)>-1) continue; + if(str.indexOf("G",Qt::CaseInsensitive)>-1) continue; + if(str.indexOf("B",Qt::CaseInsensitive)>-1) continue; + strs=str.split(" "); + strs.removeAll(""); + if(strs.size()!=3) continue; + r=strs[0].toFloat(); + g=strs[1].toFloat(); + b=strs[2].toFloat(); + if(g<=1||b<=1) if(r>0&&r<=1) r*=255; + if(r<=1||b<=1) if(g>0&&g<=1) g*=255; + if(r<=1||g<=1) if(b>0&&b<=1) b*=255; + int rr=r,gg=g,bb=b; + colorList.push_back(MyColorItem(QColor(rr,gg,bb))); + colornum++; + } + fclose(fp); + if(colornumPAITOTALCOLOR_MAX) colornum=PAITOTALCOLOR_MAX; // 最大总颜色数目 + if(inpolation) + { + colorList=myInpolation(colorList,colornum);//SYSTEM_INPOLATION); + } + return colorList.count(); +} + +QVector myInpolation(const QVector &colorList,int totalColorNum) +{ + QVector newColorList; + + // 填充新的颜色项目 + for(int i=0;i=colorList.size()) index2=colorList.size()-1; + float flgap1=pos-index1; + float flgap2=index2-pos; + int r=colorList[index1].color.red()*flgap2+colorList[index2].color.red()*flgap1; + int g=colorList[index1].color.green()*flgap2+colorList[index2].color.green()*flgap1; + int b=colorList[index1].color.blue()*flgap2+colorList[index2].color.blue()*flgap1; + newColorList[i]=MyColorItem(QColor(r,g,b)); + + } + + } + return newColorList; +} + +// 读取定制的颜色方案 +void ReadColorSettings(QList &shcemeLis) +{ + MyColorItem itemColor; + QString strImagePath; + QString strPathTmp = QCoreApplication::applicationDirPath() + QDir::separator(); + strImagePath = QDir::toNativeSeparators( strPathTmp ); + QString filecfg=strImagePath+"image"+QDir::separator()+"colortable"+QDir::separator()+"colortable.cfg"; + FILE *fp1=fopen(filecfg.toStdString().c_str(),"rt"); + if(!fp1) return; + char buf[100]; + QString str,name; + int i=0; + while(!feof(fp1)) { + fscanf(fp1,"%s",buf); + name=buf; + if(name.indexOf("custom",Qt::CaseInsensitive)>=0) { + QString filename=strImagePath+"image"+QDir::separator()+"colortable"+QDir::separator()+name; + FILE *fp=fopen(filename.toStdString().c_str(),"rt"); + if(!fp) return; + QVector colorList; + float r,g,b; + QStringList strs; + while(!feof(fp)) { + char *ret=fgets(buf,100,fp); + if(!ret) break; + str=buf; + str.replace("\r",""); + str.replace("\n",""); + if(str.indexOf("#")>-1) continue; + if(str.indexOf("=")>-1) continue; + if(str.indexOf("R",Qt::CaseInsensitive)>-1) continue; + if(str.indexOf("G",Qt::CaseInsensitive)>-1) continue; + if(str.indexOf("B",Qt::CaseInsensitive)>-1) continue; + strs=str.split(" "); + strs.removeAll(""); + if(strs.size()!=3) continue; + r=strs[0].toFloat(); + g=strs[1].toFloat(); + b=strs[2].toFloat(); + if((r>0&&r<=1)||(g>0&&g<=1)||(b>0&&b<=1)) { + r*=255; + g*=255; + b*=255; + } + int rr=r,gg=g,bb=b; + colorList.push_back(MyColorItem(QColor(rr,gg,bb))); + } + fclose(fp); + + SchemeColor schemeItem; + name=name.mid(name.lastIndexOf("\\")+1); + if(name.lastIndexOf(".rgb",-1,Qt::CaseInsensitive)>-1)name=name.mid(0,name.lastIndexOf(".rgb",-1,Qt::CaseInsensitive)); + schemeItem.schemeName=name; + schemeItem.colorList=colorList; + schemeItem.isDirty=false; + schemeItem.isCustom=true; + schemeItem.currentIndex=0; + shcemeLis.push_back(schemeItem); + } + } + fclose(fp1); + return; +} diff --git a/common/geometryutils.h b/common/geometryutils.h index 04abe24..dbf461c 100644 --- a/common/geometryutils.h +++ b/common/geometryutils.h @@ -11,6 +11,109 @@ #pragma execution_character_set("utf-8") +#define PAITOTALCOLOR_MIN 2 // 最小总颜色数目 +#define PAITOTALCOLOR_MAX 65 // 最大总颜色数目 +#define SECTIONVIEW_NUM 255 +#define SYSTEM_INPOLATION 65 // 系统缺省颜色需要插值成的数目 + +struct My_ColorItem +{ + QRgb color; // 颜色值 + float fromValue; // 对应的振幅开始值 + float toValue; // 对应的振幅的结束值 + char strComments[64]; // 描述信息 +}; +class MyColorItem +{ +public: + MyColorItem() + { + color=QColor(0,0,0); + fromValue=toValue=0; + strComments=""; + } + MyColorItem(const QColor &color,float value=0) + { + this->color=color; + this->fromValue=this->toValue=value; + strComments=""; + } + + MyColorItem(const MyColorItem &other) + { + color=other.color; + fromValue=other.fromValue; + toValue=other.toValue; + strComments=other.strComments; + } + + MyColorItem & operator=(const MyColorItem &other) + { + color=other.color; + fromValue=other.fromValue; + toValue=other.toValue; + strComments=other.strComments; + return *this; + } + QColor color; // 颜色值 + float fromValue; // 对应的振幅开始值 + float toValue; // 对应的振幅的结束值 + QString strComments; // 描述信息 +}; + +/** + * @class SchemeColor + * @brief 描述一种颜色方案 + */ + +struct Scheme_Color +{ + char schemeName[64]; + int size; + struct My_ColorItem colorList[256]; + bool isDirty; + bool isCustom; + int currentIndex; // 当前编辑的位置 +}; +class SchemeColor +{ +public: + SchemeColor() + { + schemeName=""; + colorList.clear(); + isDirty=isCustom=false; + currentIndex=0; + } + + SchemeColor(const SchemeColor &other) + { + schemeName=other.schemeName; + colorList=other.colorList; + isDirty=other.isDirty; + isCustom=other.isCustom; + currentIndex=other.currentIndex; + } + + + SchemeColor & operator=(const SchemeColor &other) + { + schemeName=other.schemeName; + colorList=other.colorList; + isDirty=other.isDirty; + isCustom=other.isCustom; + currentIndex=other.currentIndex; + return *this; + } + + + QString schemeName; + QVector colorList; + bool isDirty; + bool isCustom; + int currentIndex; // 当前编辑的位置 +}; + //const double PI = osg::PI; const double PI = 3.14159265358979323846; struct LayerInfo @@ -83,6 +186,25 @@ void SetSystemExisting(bool exiting); bool SystemExiting(); bool getAllSlf(QString prjname, QVector &vecSlfList, QVector &vecWellList);//直方图,获取当前工程下的slf bool getAliasNameFromIni(QString CurveName, QString &strAliasName, QString &strUnit);//曲线别名,单位 +/** + * @brief 获取系统缺省的系统颜色 + * @param nIndex 系统颜色序号 + * @param colorList 返回颜色列表 + * @param 当前颜色方案使用的总颜色数目 + */ +int getSystemColor(int nIndex,QVector &colorList,bool inpolation); +int getSystemColorNumber(QStringList &names); + +/** + * @brief 将制定的颜色表插值成指定的颜色 + * @param colorList 控制颜色表 + * @param 当掐颜色方案使用的总颜色数目 + * @return 返回插值以后的颜色 + */ +QVector myInpolation(const QVector &colorList,int totalColorNum); + +// 读取定制的颜色方案 +void ReadColorSettings(QList &shcemeLis); struct WellHead { diff --git a/logPlus/formdraw.cpp b/logPlus/formdraw.cpp index f403e64..000a739 100644 --- a/logPlus/formdraw.cpp +++ b/logPlus/formdraw.cpp @@ -51,6 +51,7 @@ FormDraw::FormDraw(QWidget *parent, QString strWellName, QString strTrackName) : connect(CallManage::getInstance(), SIGNAL(sig_MouseMove(QString, QString, QString, float)), this, SLOT(s_MouseMove(QString, QString, QString, float))); //波列 connect(CallManage::getInstance(), SIGNAL(sig_AddWave(QString, QString, QString, QString, QString)), this, SLOT(s_addWave(QString, QString, QString, QString, QString))); + connect(CallManage::getInstance(), SIGNAL(sig_delWave(QString, QString, QString, QString)), this, SLOT(s_delWave(QString, QString, QString, QString))); } @@ -328,6 +329,52 @@ void FormDraw::s_delLine(QString strUuid, QString strWellName, QString strTrackN } } + +void FormDraw::s_delWave(QString strUuid, QString strWellName, QString strTrackName, QString strLineName) +{ + //井名&道名不一致 + if(strUuid == m_strUuid && m_strWellName == strWellName && m_strTrackName == strTrackName) + { + } + else + { + return; + } + qDebug() << "FormDraw s_delWave"; + + if(m_listWaveName.contains(strLineName)) + { + } + else + { + qDebug() << "FormDraw strLineName not exist! " << strLineName; + return; + } + + // + // 获取当前widget的所有子控件 + const QObjectList &children = this->children(); + // 遍历子控件列表 + for (QObject *child : children) { + // 判断子控件是否为QWidget类型 + if (QWidget *childWidget = qobject_cast(child)) { + // 打印子控件的信息,使用缩进表示层级关系 + //qDebug() << QString("%1").arg(childWidget->objectName()); + QString strObjName = childWidget->objectName(); + if(strObjName=="QMyCustomPlot") + { + QMyCustomPlot *form = (QMyCustomPlot*)childWidget; + if(form->m_strLineName == strLineName) + { + childWidget->deleteLater(); // 安排控件的删除,稍后执行 + m_listWaveName.removeOne(strLineName); + //break; + } + } + } + } +} + void FormDraw::s_MouseMove(QString strUuid, QString strWellName, QString strTrackName, float dep) { //井名&道名不一致 @@ -833,9 +880,24 @@ void FormDraw::initWave(QMyCustomPlot *widget, QString strSlfName, QString strWa colorScale->axis()->setLabel("Magnetic Field Strength"); // 将颜色贴图的“颜色渐变”设置为其中一个预设 - colorMap->setGradient(QCPColorGradient::gpPolar);//gpJet); + //colorMap->setGradient(QCPColorGradient::gpPolar);//gpJet); // 我们还可以创建一个QCPColorGradient实例并向其中添加自己的颜色 // 渐变,请参阅QCPColorGradient的文档以获取可能的效果. + int nIndex=11; + QVector colorList; + bool inpolation = true; + int iColorNum = getSystemColor(nIndex, colorList, inpolation); + + QCPColorGradient gradient; + for(int i=0; isetGradient(gradient); + // 重新缩放数据维度(颜色),以使所有数据点都位于颜色渐变显示的范围内: colorMap->rescaleDataRange(); @@ -927,7 +989,7 @@ void FormDraw::dragEnterEvent(QDragEnterEvent* event) else { event->ignore(); - QApplication::setOverrideCursor(Qt::ForbiddenCursor); // 设置鼠标为不可添加状态 + //QApplication::setOverrideCursor(Qt::ForbiddenCursor); // 设置鼠标为不可添加状态 } } @@ -989,8 +1051,8 @@ void FormDraw::dropEvent(QDropEvent* event) if(m_strWellName == strWellName) { - //新建曲线 - //emit CallManage::getInstance()->sig_AddWave(m_strUuid, strSlfName, strWellName, m_strTrackName, strWaveName); + //新建波列 + emit CallManage::getInstance()->sig_AddWave(m_strUuid, strSlfName, strWellName, m_strTrackName, strWaveName); // 接受拖拽事件 event->setDropAction(Qt::MoveAction); diff --git a/logPlus/formdraw.h b/logPlus/formdraw.h index f3830dc..30ca6a5 100644 --- a/logPlus/formdraw.h +++ b/logPlus/formdraw.h @@ -79,6 +79,7 @@ public slots: // void s_addWave(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strWaveName); + void s_delWave(QString strUuid, QString strWellName, QString strTrackName, QString strLineName); }; #endif // FORMDRAW_H diff --git a/logPlus/forminfo.cpp b/logPlus/forminfo.cpp index 07c3393..bb3e3a9 100644 --- a/logPlus/forminfo.cpp +++ b/logPlus/forminfo.cpp @@ -6,6 +6,7 @@ #include #include #include +#include "geometryutils.h" //曲线名称(单个) FormInfo::FormInfo(QWidget *parent, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QColor lineColor) : @@ -22,7 +23,7 @@ FormInfo::FormInfo(QWidget *parent, QString strSlfName, QString strWellName, QSt m_strLineName = strLineName; m_lineColor = lineColor; // - m_dWidth = 2; + m_dWidth = 3; m_lineStyle = Qt::SolidLine; m_newFillMode = "无填充"; m_newHeadFill = "不绘制"; @@ -179,12 +180,27 @@ void FormInfo::paintEvent(QPaintEvent* event) painter.drawText(rect.left(), rect.top(), rect.width(), rect.height()/3, Qt::AlignCenter, m_strAliasName); } + int nIndex=1; + QVector colorList; + bool inpolation = true; + int iColorNum = getSystemColor(nIndex, colorList, inpolation); + if(m_strType=="waveObject") + { + //波列 + + } + QFont font2("微软雅黑", 8, false, false); painter.setFont(font2); painter.setPen(m_lineColor); //painter.drawText(rect.left() + 20, 55, m_strUnit); //painter.drawText(rect.left() + 20, 80, QString::number(m_vmin)+" ~ "+QString::number(m_vmax)); - painter.drawText(rect.left(), rect.top()+rect.height()/3, rect.width(), rect.height()/3, Qt::AlignCenter, m_strUnit); + if(m_strType=="curveObject") + { + //曲线 + painter.drawText(rect.left(), rect.top()+rect.height()/3, rect.width(), rect.height()/3, Qt::AlignCenter, m_strUnit); + } + 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)); QWidget::paintEvent(event); @@ -203,7 +219,7 @@ void FormInfo::dragEnterEvent(QDragEnterEvent* event) else { event->ignore(); - QApplication::setOverrideCursor(Qt::ForbiddenCursor); // 设置鼠标为不可添加状态 + //QApplication::setOverrideCursor(Qt::ForbiddenCursor); // 设置鼠标为不可添加状态 } } diff --git a/logPlus/preqtablewidget.cpp b/logPlus/preqtablewidget.cpp index 03c78f9..c0320ae 100644 --- a/logPlus/preqtablewidget.cpp +++ b/logPlus/preqtablewidget.cpp @@ -255,30 +255,61 @@ void PreQTableWidget::performDrag() FormInfo *formInfo = (FormInfo*)myWidget;//获得widget - //曲线对象(AC、BS...) - QMimeData *mimeData = new QMimeData; - // 这里需要根据你的item数据来设置mimeData,例如: - mimeData->setText(formInfo->m_strSlfName + "#@@#"+ formInfo->m_strWellName + "#@@#" +formInfo->m_strLineName); - // 创建QDrag对象 - QDrag *drag = new QDrag(this); - drag->setMimeData(mimeData); - // 可以设置拖拽时的光标图标 - QRect itemRect = visualItemRect(currentItem()); // 获取项的矩形区域 - QPixmap itemPixmap = QWidget::grab(itemRect);//QPixmap::grabWidget(this, itemRect); // 获取项的屏幕截图 - // 调整拖拽光标的热点,使其位于截图的中心 - drag->setPixmap(itemPixmap); + if(formInfo->m_strType == "curveObject") + { + //曲线对象(AC、BS...) + QMimeData *mimeData = new QMimeData; + // 这里需要根据你的item数据来设置mimeData,例如: + mimeData->setText(formInfo->m_strSlfName + "#@@#"+ formInfo->m_strWellName + "#@@#" +formInfo->m_strLineName); + // 创建QDrag对象 + QDrag *drag = new QDrag(this); + drag->setMimeData(mimeData); + // 可以设置拖拽时的光标图标 + QRect itemRect = visualItemRect(currentItem()); // 获取项的矩形区域 + QPixmap itemPixmap = QWidget::grab(itemRect);//QPixmap::grabWidget(this, itemRect); // 获取项的屏幕截图 + // 调整拖拽光标的热点,使其位于截图的中心 + drag->setPixmap(itemPixmap); - // 执行拖拽操作 - m_AddSuc = false; - Qt::DropAction dropAction = drag->exec(Qt::MoveAction); - if (dropAction == Qt::MoveAction) { //&& m_AddSuc - // 处理拖拽结束的逻辑,例如从界面上移除拖拽的项 - removeRow(iCurrentRow); - //删除曲线 - emit CallManage::getInstance()->sig_delLine(m_strUuid, formInfo->m_strWellName, formInfo->m_strTrackName, formInfo->m_strLineName); - // - //m_listLineName.removeOne(formInfo->m_strLineName); + // 执行拖拽操作 + m_AddSuc = false; + Qt::DropAction dropAction = drag->exec(Qt::MoveAction); + if (dropAction == Qt::MoveAction) { //&& m_AddSuc + // 处理拖拽结束的逻辑,例如从界面上移除拖拽的项 + removeRow(iCurrentRow); + //删除曲线 + emit CallManage::getInstance()->sig_delLine(m_strUuid, formInfo->m_strWellName, formInfo->m_strTrackName, formInfo->m_strLineName); + // + //m_listLineName.removeOne(formInfo->m_strLineName); + } } + else if(formInfo->m_strType == "waveObject") + { + //波列对象 + QMimeData *mimeData = new QMimeData; + // 这里需要根据你的item数据来设置mimeData,例如: + mimeData->setText(formInfo->m_strSlfName + "#$$#"+ formInfo->m_strWellName + "#$$#" +formInfo->m_strLineName); + // 创建QDrag对象 + QDrag *drag = new QDrag(this); + drag->setMimeData(mimeData); + // 可以设置拖拽时的光标图标 + QRect itemRect = visualItemRect(currentItem()); // 获取项的矩形区域 + QPixmap itemPixmap = QWidget::grab(itemRect);//QPixmap::grabWidget(this, itemRect); // 获取项的屏幕截图 + // 调整拖拽光标的热点,使其位于截图的中心 + drag->setPixmap(itemPixmap); + + // 执行拖拽操作 + m_AddSuc = false; + Qt::DropAction dropAction = drag->exec(Qt::MoveAction); + if (dropAction == Qt::MoveAction) { //&& m_AddSuc + // 处理拖拽结束的逻辑,例如从界面上移除拖拽的项 + removeRow(iCurrentRow); + //删除波列 + emit CallManage::getInstance()->sig_delWave(m_strUuid, formInfo->m_strWellName, formInfo->m_strTrackName, formInfo->m_strLineName); + // + //m_listLineName.removeOne(formInfo->m_strLineName); + } + } + } // if(!currentItem()) diff --git a/logPlus/qmycustomplot.cpp b/logPlus/qmycustomplot.cpp index 49a5b08..6ecfe70 100644 --- a/logPlus/qmycustomplot.cpp +++ b/logPlus/qmycustomplot.cpp @@ -16,6 +16,7 @@ QMyCustomPlot::QMyCustomPlot(QWidget *parent, QString strSlfName, QString strWel //this->setOpenGl(true);//不开启,电脑不支持会卡 this->setNotAntialiasedElements(QCP::aeAll); // 关闭所有抗锯齿 + //jyl xAxis->setTickLabels(false); yAxis->setTickLabels(false); // diff --git a/logPlus/qtprojectwidgets.cpp b/logPlus/qtprojectwidgets.cpp index b2e52d5..f19af8c 100644 --- a/logPlus/qtprojectwidgets.cpp +++ b/logPlus/qtprojectwidgets.cpp @@ -57,7 +57,7 @@ QtProjectWidgets::QtProjectWidgets(QWidget *parent) //为树 tree 创建信号槽,鼠标press时会触发对应的信号。 connect(ui->treeWidget, &QTreeWidget::itemPressed, this, &QtProjectWidgets::onItemClicked); - connect(ui->treeWidget, &QTreeWidget::itemChanged, this, &QtProjectWidgets::onItemChanged); + //connect(ui->treeWidget, &QTreeWidget::itemChanged, this, &QtProjectWidgets::onItemChanged); } QtProjectWidgets::~QtProjectWidgets() @@ -468,8 +468,8 @@ void QtProjectWidgets::loadWellTree(QTreeWidgetItem *parent, QString fileFull, Q itemSheetChild->setData(0, Qt::UserRole + 2, wellname); // 存储额外数据,井名 itemSheetChild->setIcon(0, iconSheet); //在创建的每个节点下,加上下面代码 - itemSheetChild->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsTristate | Qt::ItemIsDragEnabled); //设置树形控件子项的属性 - itemSheetChild->setCheckState(0, Qt::Unchecked);//也可以是其他状态 +// itemSheetChild->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsTristate | Qt::ItemIsDragEnabled); //设置树形控件子项的属性 +// itemSheetChild->setCheckState(0, Qt::Unchecked);//也可以是其他状态 if (0 == itemSheet->childCount()) { @@ -540,8 +540,8 @@ void QtProjectWidgets::loadWellTree(QTreeWidgetItem *parent, QString fileFull, Q itemCurveLog->setData(0, Qt::UserRole + 2, wellname); // 存储额外数据,井名 itemCurveLog->setIcon(0, iconSheet); //在创建的每个节点下,加上下面代码(check框) - itemCurveLog->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsTristate | Qt::ItemIsDragEnabled); //设置树形控件子项的属性 - itemCurveLog->setCheckState(0, Qt::Unchecked);//也可以是其他状态 +// itemCurveLog->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsTristate | Qt::ItemIsDragEnabled); //设置树形控件子项的属性 +// itemCurveLog->setCheckState(0, Qt::Unchecked);//也可以是其他状态 if (0 == itemCurve->childCount()) { itemwell->addChild(itemCurve);//添加一级子节点 @@ -881,23 +881,23 @@ void QtProjectWidgets::onItemClicked(QTreeWidgetItem* item, int index) //勾选/不勾选树图节点 void QtProjectWidgets::onItemChanged(QTreeWidgetItem* item, int index) { - qDebug() << "QtProjectWidgets onItemChanged"; - QString strTreeTag = item->data(0, Qt::UserRole).toString(); - if (strTreeTag == "curveObject" || strTreeTag == "tableObject"){ - //曲线对象(AC、BS...) || 表格对象 - m_strCurveObjectName = item->text(0); - m_strSlfName = item->data(0, Qt::UserRole+1).toString(); - // - bool bCkecked = false; - if(item->checkState(0) == Qt::Checked) - { - bCkecked = true; - } - //曲线("*.slf", "AC", "curveObject", true) - //表格("*.slf“, "LAYER_DATA", "tableObject", false) - //(m_strSlfName, m_strCurveObjectName, strTreeTag, bCkecked) +// qDebug() << "QtProjectWidgets onItemChanged"; +// QString strTreeTag = item->data(0, Qt::UserRole).toString(); +// if (strTreeTag == "curveObject" || strTreeTag == "tableObject"){ +// //曲线对象(AC、BS...) || 表格对象 +// m_strCurveObjectName = item->text(0); +// m_strSlfName = item->data(0, Qt::UserRole+1).toString(); +// // +// bool bCkecked = false; +// if(item->checkState(0) == Qt::Checked) +// { +// bCkecked = true; +// } +// //曲线("*.slf", "AC", "curveObject", true) +// //表格("*.slf“, "LAYER_DATA", "tableObject", false) +// //(m_strSlfName, m_strCurveObjectName, strTreeTag, bCkecked) - //插件测试(信号槽) - emit CallManage::getInstance()->sig_testPlugin(m_strCurveObjectName); - } +// //插件测试(信号槽) +// emit CallManage::getInstance()->sig_testPlugin(m_strCurveObjectName); +// } }