diff --git a/CallManage/CallManage.h b/CallManage/CallManage.h index 10336e9..f01656d 100644 --- a/CallManage/CallManage.h +++ b/CallManage/CallManage.h @@ -41,6 +41,8 @@ signals: void sig_NewTrack(QString strWellName, QString strSlfName, QString strLineName);//新建道 void sig_NewTrack_No_Line(QString strWellName, QString strTrackName);//新建空白道,没有曲线 void sig_AddLine(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);//新建曲线 + void sig_AddLine_Property(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, + double newLeftScale, double newRightScale, QColor lineColor, double width, Qt::PenStyle lineStyle);//新建曲线,带属性 void sig_delLine(QString strWellName, QString strTrackName, QString strLineName);//删除曲线 //属性 //左刻度 diff --git a/logPlus/PropertyWidget.h b/logPlus/PropertyWidget.h index d313f8a..cd7b883 100644 --- a/logPlus/PropertyWidget.h +++ b/logPlus/PropertyWidget.h @@ -40,6 +40,7 @@ private: QtVariantPropertyManager *m_pVariantManager; public: + QString m_strUuid; QString m_strSlfName; QString m_strWellName; QString m_strTrackName; diff --git a/logPlus/formdraw.cpp b/logPlus/formdraw.cpp index 9e587d8..c27f391 100644 --- a/logPlus/formdraw.cpp +++ b/logPlus/formdraw.cpp @@ -45,9 +45,11 @@ FormDraw::FormDraw(QWidget *parent, QString strWellName, QString strTrackName) : connect(CallManage::getInstance(), SIGNAL(sig_AddLine(QString, QString, QString, QString)), this, SLOT(s_addLine(QString, QString, QString, QString))); + connect(CallManage::getInstance(), SIGNAL(sig_AddLine_Property(QString, QString, QString, QString, double, double, QColor, double, Qt::PenStyle)), + this, SLOT(s_AddLine_Property(QString, QString, QString, QString, double, double, QColor, double, Qt::PenStyle))); connect(CallManage::getInstance(), SIGNAL(sig_delLine(QString, QString, QString)), this, SLOT(s_delLine(QString, QString, QString))); connect(CallManage::getInstance(), SIGNAL(sig_MouseMove(QString, QString, float)), this, SLOT(s_MouseMove(QString, QString, float))); - connect(CallManage::getInstance(), SIGNAL(sig_addImageToPlot(QMyCustomPlot*, double, double, QString)), this, SLOT(s_addImageToPlot(QMyCustomPlot*, double, double, QString))); + //connect(CallManage::getInstance(), SIGNAL(sig_addImageToPlot(QMyCustomPlot*, double, double, QString)), this, SLOT(s_addImageToPlot(QMyCustomPlot*, double, double, QString))); //s_addLine(1); @@ -134,6 +136,62 @@ void FormDraw::s_addLine(QString strSlfName, QString strWellName, QString strTra m_listLineName.push_back(strLineName); } +void FormDraw::s_AddLine_Property(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, + double newLeftScale, double newRightScale, QColor lineColor, double width, Qt::PenStyle lineStyle) +{ + qDebug() << "FormDraw s_addLine"; + + //井名&道名不一致 + if(m_strWellName == strWellName && m_strTrackName == strTrackName) + { + } + else + { + return; + } + + if(m_listLineName.contains(strLineName)) + { + qDebug() << "FormDraw strLineName already exist! " << strLineName; + return; + } + + // + QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strLineName); + //背景设置成透明色 + curv->setBackground(Qt::transparent); + curv->setStyleSheet("background: transparent;"); + // + //QRect rect = this->rect(); + //curv->setGeometry(rect.left(),rect.top(), rect.width(), rect.height()); + + double dHight = 0; + dHight = (g_iY2-g_iY1)*100.0/(double)g_iScale * g_dPixelPerCm; + + qDebug() << "FormDraw dHight=" << QString::number((int)dHight-3184); + if(dHight>32767) + { + dHight = 32767; + } + + //curv->setMaximumHeight((int)dHight); + //curv->setViewport(QRect(0, 0, g_iOneWidth, (int)dHight));//7500-3184 + curv->setGeometry(0, 0, g_iOneWidth, (int)dHight);//7500-3184 + + + //curv->resize(INT_MAX, INT_MAX); // 使用 INT_MAX 来避免16位整数的限制 +// QSizePolicy policy(QSizePolicy::Expanding, QSizePolicy::Expanding); +// curv->setSizePolicy(policy); + + initForm(curv, strSlfName, strLineName, + newLeftScale, newRightScale, lineColor, width, lineStyle); + curv->show(); + + // + m_listLineName.push_back(strLineName); +} + + void FormDraw::s_delLine(QString strWellName, QString strTrackName, QString strLineName) { qDebug() << "FormDraw s_delLine"; @@ -236,8 +294,12 @@ void FormDraw::s_MouseMove(QString strWellName, QString strTrackName, float dep) void FormDraw::s_addImageToPlot(QMyCustomPlot* customPlot, double left_Low, double right_Hight, const QString imagePath) { //井名&道名不一致 - if(m_strWellName == customPlot->m_strWellName && m_strTrackName == customPlot->m_strTrackName) + if(this->isActiveWindow() //当前活动窗口 + && m_strWellName == customPlot->m_strWellName + && m_strTrackName == customPlot->m_strTrackName + && m_listLineName.contains(customPlot->m_strLineName)) { + } else { @@ -401,7 +463,8 @@ void FormDraw::setupSelectionDemo(QMyCustomPlot *customPlot) if(right_Hight-left_Low>5) { //添加图形 - emit CallManage::getInstance()->sig_addImageToPlot(customPlot, left_Low, right_Hight, ":/image/file.png"); + //emit CallManage::getInstance()->sig_addImageToPlot(customPlot, left_Low, right_Hight, ":/image/file.png"); + customPlot->addImageToPlot(left_Low, right_Hight, ":/image/file.png"); } }); @@ -431,7 +494,8 @@ void FormDraw::setupSelectionDemo(QMyCustomPlot *customPlot) if(right_Hight-left_Low>1) { //添加图形 - emit CallManage::getInstance()->sig_addImageToPlot(customPlot, left_Low, right_Hight, ":/image/file.png"); + //emit CallManage::getInstance()->sig_addImageToPlot(customPlot, left_Low, right_Hight, ":/image/file.png"); + customPlot->addImageToPlot(left_Low, right_Hight, ":/image/file.png"); } } @@ -464,7 +528,8 @@ void FormDraw::s_selectionRectAccepted(const QRect &rect, QMouseEvent *event) // double y2 = widget->yAxis->pixelToCoord(rect.bottom()); } -void FormDraw::initForm(QMyCustomPlot *widget, QString strSlfName, QString strLineName) +void FormDraw::initForm(QMyCustomPlot *widget, QString strSlfName, QString strLineName, + double newLeftScale, double newRightScale, QColor lineColor, double width, Qt::PenStyle lineStyle) { CLogIO *logio=new CLogIO(); logio->Open(strSlfName.toStdString().c_str(),CSlfIO::modeRead); @@ -502,12 +567,21 @@ void FormDraw::initForm(QMyCustomPlot *widget, QString strSlfName, QString strLi QVector x, y; for(int i=0; ival[i])vmin=val[i]; + if(newLeftScale==-9999) + { + if(vmaxval[i])vmin=val[i]; + } // x.append(-(sdep+ rlev*i)); y.append(val[i]); } + + if(newLeftScale!=-9999) + { + vmax = newRightScale; + vmin = newLeftScale; + } //赋值 m_vmax = vmax; m_vmin = vmin; @@ -566,8 +640,15 @@ void FormDraw::initForm(QMyCustomPlot *widget, QString strSlfName, QString strLi // x.append(-(sdep+ rlev*i)); // y.append(val[i]); // } - addRandomGraph(widget, x, y, strSlfName, strLineName); + if(newLeftScale!=-9999) + { + addRandomGraph(widget, x, y, strSlfName, strLineName, + newLeftScale, newRightScale, lineColor, width, lineStyle); + } + else { + addRandomGraph(widget, x, y, strSlfName, strLineName); + } //支持框选 setupSelectionDemo(widget); @@ -576,7 +657,8 @@ void FormDraw::initForm(QMyCustomPlot *widget, QString strSlfName, QString strLi widget->replot(); } -void FormDraw::addRandomGraph(QMyCustomPlot *widget, QVector x, QVector y, QString strSlfName, QString strLineName) +void FormDraw::addRandomGraph(QMyCustomPlot *widget, QVector x, QVector y, QString strSlfName, QString strLineName, + double newLeftScale, double newRightScale, QColor newlineColor, double width, Qt::PenStyle lineStyle) { widget->addGraph(); if(strLineName=="") @@ -586,31 +668,45 @@ void FormDraw::addRandomGraph(QMyCustomPlot *widget, QVector x, QVector< widget->graph()->setName(strLineName); widget->graph()->setData(x, y); - widget->graph()->setLineStyle((QCPGraph::LineStyle)(1));//曲线 - //widget->graph()->setLineStyle((QCPGraph::LineStyle)(std::rand()%5+1)); - //widget->graph()->setLineStyle((QCPGraph::LineStyle)(QCPGraph::lsLine));//曲线 - //widget->graph()->setLineStyle((QCPGraph::LineStyle)(QCPGraph::lsImpulse));//杆状 + if(newLeftScale!=-9999) + { + widget->graph()->setLineStyle((QCPGraph::LineStyle)(lineStyle));//曲线 -// if (std::rand()%100 > 50) -// widget->graph()->setScatterStyle(QCPScatterStyle((QCPScatterStyle::ScatterShape)(std::rand()%14+1))); + widget->graph()->setScatterStyle(QCPScatterStyle((QCPScatterStyle::ScatterShape)(1))); - widget->graph()->setScatterStyle(QCPScatterStyle((QCPScatterStyle::ScatterShape)(1))); -// widget->graph()->setScatterStyle(QCPScatterStyle(QPixmap(":/image/file.png"))); + QPen graphPen; + graphPen.setColor(newlineColor); + graphPen.setWidthF(width); + graphPen.setStyle(lineStyle);//实线 + widget->graph()->setPen(graphPen); + } + else + { + widget->graph()->setLineStyle((QCPGraph::LineStyle)(1));//曲线 + //widget->graph()->setLineStyle((QCPGraph::LineStyle)(std::rand()%5+1)); + //widget->graph()->setLineStyle((QCPGraph::LineStyle)(QCPGraph::lsLine));//曲线 + //widget->graph()->setLineStyle((QCPGraph::LineStyle)(QCPGraph::lsImpulse));//杆状 - //widget->graph()->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssDisc, 5)); + // if (std::rand()%100 > 50) + // widget->graph()->setScatterStyle(QCPScatterStyle((QCPScatterStyle::ScatterShape)(std::rand()%14+1))); - QPen graphPen; - QColor lineColor = QColor(std::rand()%245+10, std::rand()%245+10, std::rand()%245+10); - graphPen.setColor(lineColor); - //graphPen.setWidthF(std::rand()/(double)RAND_MAX*2+1); - double dWidth = 2; - graphPen.setWidthF(dWidth); - graphPen.setStyle(Qt::SolidLine);//实线 - widget->graph()->setPen(graphPen); - //widget->replot(); + widget->graph()->setScatterStyle(QCPScatterStyle((QCPScatterStyle::ScatterShape)(1))); + // widget->graph()->setScatterStyle(QCPScatterStyle(QPixmap(":/image/file.png"))); + //widget->graph()->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssDisc, 5)); + + QPen graphPen; + newlineColor = QColor(std::rand()%245+10, std::rand()%245+10, std::rand()%245+10); + graphPen.setColor(newlineColor); + //graphPen.setWidthF(std::rand()/(double)RAND_MAX*2+1); + width = 2; + graphPen.setWidthF(width); + graphPen.setStyle(Qt::SolidLine);//实线 + widget->graph()->setPen(graphPen); + //widget->replot(); + } //道-对象 - m_formTrack->Add(strSlfName, m_strWellName, m_strTrackName, strLineName, lineColor, dWidth, m_vmax, m_vmin); + m_formTrack->Add(strSlfName, m_strWellName, m_strTrackName, strLineName, newlineColor, width, m_vmax, m_vmin); } diff --git a/logPlus/formdraw.h b/logPlus/formdraw.h index 6d859dd..015ea71 100644 --- a/logPlus/formdraw.h +++ b/logPlus/formdraw.h @@ -35,6 +35,7 @@ public slots: void dropEvent(QDropEvent* event); public: + QString m_strUuid; QString m_strWellName; QString m_strTrackName; @@ -47,8 +48,10 @@ public: float m_vmin; public: - void initForm(QMyCustomPlot *widget, QString strSlfName, QString strLineName); - void addRandomGraph(QMyCustomPlot *widget, QVector x, QVector y, QString strSlfName, QString strLineName); + void initForm(QMyCustomPlot *widget, QString strSlfName, QString strLineName, + double newLeftScale=-9999, double newRightScale=-9999, QColor lineColor=QColor(0,0,0), double width=1, Qt::PenStyle lineStyle=Qt::SolidLine); + void addRandomGraph(QMyCustomPlot *widget, QVector x, QVector y, QString strSlfName, QString strLineName, + double newLeftScale=-9999, double newRightScale=-9999, QColor lineColor=QColor(0,0,0), double width=1, Qt::PenStyle lineStyle=Qt::SolidLine); void setupLineStyleDemo(QMyCustomPlot *customPlot); void setupSelectionDemo(QMyCustomPlot *customPlot); @@ -58,6 +61,9 @@ signals: public slots: void s_addLine(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName); + void s_AddLine_Property(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, + double newLeftScale, double newRightScale, QColor lineColor, double width, Qt::PenStyle lineStyle);//新建曲线,带属性 + void s_delLine(QString strWellName, QString strTrackName, QString strLineName); void s_MouseMove(QString strWellName, QString strTrackName, float dep); void s_handleRectRangeChange(QCPRange newRange); diff --git a/logPlus/forminfo.h b/logPlus/forminfo.h index 06b72bf..2bad045 100644 --- a/logPlus/forminfo.h +++ b/logPlus/forminfo.h @@ -52,6 +52,7 @@ public slots: float vMin, float vMax); public: + QString m_strUuid; QString m_strSlfName; QString m_strWellName; QString m_strTrackName; diff --git a/logPlus/formtrack.h b/logPlus/formtrack.h index 9c2e740..e27da40 100644 --- a/logPlus/formtrack.h +++ b/logPlus/formtrack.h @@ -22,6 +22,7 @@ private: Ui::FormTrack *ui; public: + QString m_strUuid; QString m_strWellName; QString m_strTrackName; diff --git a/logPlus/formwell.h b/logPlus/formwell.h index c437585..50052ab 100644 --- a/logPlus/formwell.h +++ b/logPlus/formwell.h @@ -23,6 +23,7 @@ private: Ui::FormWell *ui; public: + QString m_strUuid; QString m_strWellName; public: diff --git a/logPlus/mainwindow.cpp b/logPlus/mainwindow.cpp index b1309f4..4df08eb 100644 --- a/logPlus/mainwindow.cpp +++ b/logPlus/mainwindow.cpp @@ -177,7 +177,7 @@ void MainWindow::initToolBar() m_newAc = new QAction(newFileIcon, "新建项目", this); m_openAc = new QAction(openFileIcon, "打开项目", this); - m_grepAc = new QAction(grepIcon, "启用缩放", this); + m_grepAc = new QAction(grepIcon, "可视解释", this);//启用缩放 m_compileAc = new QAction(compileIcon, "新建道", this); m_runAc = new QAction(runIcon, "保存图像", this); m_debugAc = new QAction(debugIcon, "画图", this); @@ -196,7 +196,7 @@ void MainWindow::initToolBar() connect(m_newAc, &QAction::triggered, this, &MainWindow::s_New); connect(m_openAc, &QAction::triggered, this, &MainWindow::s_Open); - connect(m_grepAc, &QAction::triggered, this, &MainWindow::s_Risize); + connect(m_grepAc, &QAction::triggered, this, &MainWindow::s_showView);//s_Risize connect(m_compileAc, &QAction::triggered, this, &MainWindow::s_AddOne); connect(m_runAc, &QAction::triggered, this, &MainWindow::s_SaveImage); connect(m_debugAc, &QAction::triggered, this, &MainWindow::s_DrawImg); @@ -238,42 +238,42 @@ void MainWindow::initWorkSpaceView() //---- - MainWindowCurve *mainWindowNew2 = new MainWindowCurve();//中间工作区 - m_centerWidgets->addTab(mainWindowNew2, "解释视图2"); + //MainWindowCurve *mainWindowNew2 = new MainWindowCurve();//中间工作区 + //m_centerWidgets->addTab(mainWindowNew2, "解释视图2"); //---- - MainWindowNew *mainWindowNew = new MainWindowNew();//中间工作区 - m_centerWidgets->addTab(mainWindowNew, "解释视图"); + //MainWindowNew *mainWindowNew = new MainWindowNew();//中间工作区 + //m_centerWidgets->addTab(mainWindowNew, "解释视图"); // //加载插件显示 - QWidget * pMyWidget = CallPlugin::getInstance()->getPluginWidget(MYUNITPLUGIN, NULL); - if (pMyWidget != nullptr) - { - // - //直方图,获取当前工程下的slf - QVector vecSlfList; - QVector vecWellList; - bool bRet = getAllSlf(g_prjname, vecSlfList, vecWellList); - if(bRet) - { - for(int i=0; iaddTab(pMyWidget, "插件视图"); +// } } qDebug() << "工作区 id:" << m_stackedWidget_Center->winId() << ", name:" << m_stackedWidget_Center->windowTitle(); } @@ -327,6 +327,41 @@ void MainWindow::s_Open() } } +//可视解释 +void MainWindow::s_showView() +{ + if(g_prjname=="") + { + QMessageBox::information(nullptr, "提示", "请先打开项目!"); + return; + } + + //Logdata + QString folderPath; + folderPath = GetLogdataPath(); + folderPath = folderPath + g_prjname; + //folderPath = folderPath + "/multiwell.json"; + + //打开 + QString fileFull = ""; + fileFull = QFileDialog::getOpenFileName(this, + tr("选择模板"), + folderPath, + tr("多井图文件(*.json)")); + if (fileFull.isEmpty()) + { + //---- + MainWindowCurve *mainWindowCurve = new MainWindowCurve();//中间工作区 + m_centerWidgets->addTab(mainWindowCurve, "解释视图"); + return; + } + + //---- + MainWindowCurve *mainWindowCurve = new MainWindowCurve();//中间工作区 + m_centerWidgets->addTab(mainWindowCurve, "解释视图"); + mainWindowCurve->s_Open(fileFull); +} + void MainWindow::s_Risize() { emit CallManage::getInstance()->sig_Risize(); diff --git a/logPlus/mainwindow.h b/logPlus/mainwindow.h index a0b600a..79d0dc9 100644 --- a/logPlus/mainwindow.h +++ b/logPlus/mainwindow.h @@ -81,7 +81,8 @@ public slots: void s_DrawImg(); void s_DrawLine(); - + //可视解释 + void s_showView(); void s_ShowCurve(QString strSlfName, QString strName);//曲线数据查看 diff --git a/logPlus/mainwindowcurve.cpp b/logPlus/mainwindowcurve.cpp index 559efbd..d485665 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -4,6 +4,7 @@ #include #include "CallManage.h" #include +#include "qtcommonclass.h" extern int g_iOneWidth; //道宽 extern QString g_prjname; @@ -19,6 +20,9 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) : { ui->setupUi(this); + QtCommonClass *qtCommon = new QtCommonClass(this); + m_strUuid = qtCommon->getUUid(); + // 设置工具栏的位置,此处设置为在左侧 addToolBar(Qt::LeftToolBarArea, ui->toolBar); @@ -90,7 +94,7 @@ void MainWindowCurve::initMainToolBar() //Main工具栏 QAction* m_saveAc = nullptr; //保存 - QAction* m_openAc = nullptr; //打开 + //QAction* m_openAc = nullptr; //打开 QAction* m_compileAc = nullptr; // QAction* m_runAc = nullptr;// QAction* m_debugAc = nullptr; // @@ -98,7 +102,7 @@ void MainWindowCurve::initMainToolBar() QAction* m_loadAc = nullptr; //加载 m_saveAc = new QAction(newFileIcon, "保存", this); - m_openAc = new QAction(openFileIcon, "打开", this); + //m_openAc = new QAction(openFileIcon, "打开", this); m_grepAc = new QAction(grepIcon, "锁头", this); m_compileAc = new QAction(compileIcon, "加载图文件", this); m_runAc = new QAction(runIcon, "设置井", this); @@ -109,7 +113,7 @@ void MainWindowCurve::initMainToolBar() //add QAction to Widget. ui->mainToolBar->addAction(m_saveAc); - ui->mainToolBar->addAction(m_openAc); + //ui->mainToolBar->addAction(m_openAc); ui->mainToolBar->addAction(m_grepAc); ui->mainToolBar->addAction(m_compileAc); ui->mainToolBar->addAction(m_runAc); @@ -117,7 +121,7 @@ void MainWindowCurve::initMainToolBar() ui->mainToolBar->addAction(m_loadAc); connect(m_saveAc, &QAction::triggered, this, &MainWindowCurve::s_Save); - connect(m_openAc, &QAction::triggered, this, &MainWindowCurve::s_Open); + //connect(m_openAc, &QAction::triggered, this, &MainWindowCurve::s_Open); // connect(m_grepAc, &QAction::triggered, this, &MainWindow::s_Risize); // connect(m_compileAc, &QAction::triggered, this, &MainWindow::s_AddOne); @@ -234,25 +238,8 @@ void MainWindowCurve::s_Save() } } -void MainWindowCurve::s_Open() +void MainWindowCurve::s_Open(QString fileFull) { - //Logdata - QString folderPath; - folderPath = GetLogdataPath(); - folderPath = folderPath + g_prjname; - //folderPath = folderPath + "/multiwell.json"; - - //打开 - QString fileFull = ""; - fileFull = QFileDialog::getOpenFileName(this, - tr("选择模板"), - folderPath, - tr("多井图文件(*.json)")); - if (fileFull.isEmpty()) - { - return; - } - QString strPrjname = ""; QJsonArray wellsArray; @@ -356,6 +343,7 @@ void MainWindowCurve::DisplayWells(QJsonArray wellsArray) } } +//展示其中一口井 void MainWindowCurve::DisplayWell_One(QJsonObject wellObjInfo) { QString strWellName = ""; @@ -534,6 +522,11 @@ void MainWindowCurve::DisplayLine_One(QJsonObject lineObjInfo) QString strWellName = ""; QString strTrackName = ""; QString strLineName = ""; + double newLeftScale = 0; + double newRightScale = 500; + QColor lineColor = QColor(0,0,0); + double width = 3; + Qt::PenStyle lineStyle = Qt::SolidLine; if (lineObjInfo.contains("SlfName")) { @@ -568,10 +561,82 @@ void MainWindowCurve::DisplayLine_One(QJsonObject lineObjInfo) } } + if (lineObjInfo.contains("vmin")) + { + QJsonValue value = lineObjInfo.value("vmin"); + if (value.isDouble()) { + newLeftScale = value.toDouble(); + qDebug() << "vmin:" << QString::number(newLeftScale); + } + } + if (lineObjInfo.contains("vmax")) + { + QJsonValue value = lineObjInfo.value("vmax"); + if (value.isDouble()) { + newRightScale = value.toDouble(); + qDebug() << "vmax:" << QString::number(newRightScale); + } + } + if (lineObjInfo.contains("Width")) + { + QJsonValue value = lineObjInfo.value("Width"); + if (value.isDouble()) { + width = value.toDouble(); + qDebug() << "Width:" << QString::number(width); + } + } + + if (lineObjInfo.contains("lineStyle")) + { + QJsonValue value = lineObjInfo.value("lineStyle"); + if (value.isDouble()) { + lineStyle = (Qt::PenStyle)value.toInt(); + qDebug() << "lineStyle:" << QString::number(lineStyle); + } + } + // + if (lineObjInfo.contains("lineColorRed")) + { + QJsonValue value = lineObjInfo.value("lineColorRed"); + if (value.isDouble()) { + lineColor.setRed(value.toInt()); + qDebug() << "lineColorRed:" << QString::number(value.toInt()); + } + } + // + if (lineObjInfo.contains("lineColorGreen")) + { + QJsonValue value = lineObjInfo.value("lineColorGreen"); + if (value.isDouble()) { + lineColor.setGreen(value.toInt()); + qDebug() << "lineColorGreen:" << QString::number(value.toInt()); + } + } + // + if (lineObjInfo.contains("lineColorBlue")) + { + QJsonValue value = lineObjInfo.value("lineColorBlue"); + if (value.isDouble()) { + lineColor.setBlue(value.toInt()); + qDebug() << "lineColorBlue:" << QString::number(value.toInt()); + } + } + // + if (lineObjInfo.contains("lineColorAlpha")) + { + QJsonValue value = lineObjInfo.value("lineColorAlpha"); + if (value.isDouble()) { + lineColor.setAlpha(value.toInt()); + qDebug() << "lineColorAlpha:" << QString::number(value.toInt()); + } + } + if(strLineName!="") { //新建曲线 - emit CallManage::getInstance()->sig_AddLine(strSlfName, strWellName, strTrackName, strLineName); + //emit CallManage::getInstance()->sig_AddLine(strSlfName, strWellName, strTrackName, strLineName); + emit CallManage::getInstance()->sig_AddLine_Property(strSlfName, strWellName, strTrackName, strLineName, + newLeftScale, newRightScale, lineColor, width, lineStyle); } } @@ -673,6 +738,7 @@ void MainWindowCurve::s_NewWell(QString strWellName) ui->tableWidget_2->setRowHeight(i, (int)dHight);//8020 // FormWell *widgetWell = new FormWell(this, strWellName); + widgetWell->m_strUuid = m_strUuid; ui->tableWidget_2->setCellWidget(i, columnCount, widgetWell); } } diff --git a/logPlus/mainwindowcurve.h b/logPlus/mainwindowcurve.h index 8403714..8af67d2 100644 --- a/logPlus/mainwindowcurve.h +++ b/logPlus/mainwindowcurve.h @@ -28,6 +28,7 @@ public slots: void dropEvent(QDropEvent* event); public: + QString m_strUuid; QStringList m_listWell; @@ -67,7 +68,7 @@ public slots: void s_NewTrack();//新建道 // void s_Save();//保存 - void s_Open();//打开 + void s_Open(QString fileFull);//打开 }; #endif // MAINWINDOWCURVE_H diff --git a/logPlus/preqtablewidget.h b/logPlus/preqtablewidget.h index 88a9929..5ffdfe8 100644 --- a/logPlus/preqtablewidget.h +++ b/logPlus/preqtablewidget.h @@ -29,6 +29,7 @@ private: QPoint startPos; public: + QString m_strUuid; QString m_strWellName; QString m_strTrackName; bool m_press;//判断鼠标是否按下 diff --git a/logPlus/qmycustomplot.cpp b/logPlus/qmycustomplot.cpp index 173e782..2b33772 100644 --- a/logPlus/qmycustomplot.cpp +++ b/logPlus/qmycustomplot.cpp @@ -1,6 +1,7 @@ #include "qmycustomplot.h" #include "CallManage.h" #include "geometryutils.h" +#include "TransparentDraggableRect.h" QMyCustomPlot::QMyCustomPlot(QWidget *parent, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName) : QCustomPlot(parent) @@ -103,10 +104,23 @@ void QMyCustomPlot::onAddRect() double right_Hight = xAxis->pixelToCoord(m_event->pos().y());//x轴展示深度 double left_Low = right_Hight-5; //添加图形 - emit CallManage::getInstance()->sig_addImageToPlot(this, left_Low, right_Hight, ":/image/file.png"); + //emit CallManage::getInstance()->sig_addImageToPlot(this, left_Low, right_Hight, ":/image/file.png"); + addImageToPlot(left_Low, right_Hight, ":/image/file.png"); } +void QMyCustomPlot::addImageToPlot(double left_Low, double right_Hight, const QString imagePath) +{ + // 在初始化代码中 + TransparentDraggableRect *dragRect = new TransparentDraggableRect(this); + // 设置初始范围 + dragRect->setRange(left_Low, right_Hight); + // 可选:设置颜色 + dragRect->setColor(QColor(255, 100, 100, 80)); // 半透明红色 + //最小宽度 + dragRect->setMinWidth(5); +} + void QMyCustomPlot::onResetZoom() { diff --git a/logPlus/qmycustomplot.h b/logPlus/qmycustomplot.h index 51e6ce3..7b75aff 100644 --- a/logPlus/qmycustomplot.h +++ b/logPlus/qmycustomplot.h @@ -20,6 +20,7 @@ protected: virtual void mouseMoveEvent(QMouseEvent *event); public: + QString m_strUuid; QString m_strSlfName; QString m_strWellName; QString m_strTrackName; @@ -43,6 +44,7 @@ public: bool m_bDrawRect = true; public: void init(QString strName, QVector x, QVector y); + void addImageToPlot(double left_Low, double right_Hight, const QString imagePath); public slots: void s_LineClicked(int index);