diff --git a/logPlus/DrawTvd.cpp b/logPlus/DrawTvd.cpp index 5f88f80..5db0f27 100644 --- a/logPlus/DrawTvd.cpp +++ b/logPlus/DrawTvd.cpp @@ -570,30 +570,30 @@ void CDrawTvd::DrawClient(QPainter* pdc,QRectF mrt) double GetPixelPerCm() { - double g_logicalDpi; - double g_dPixelPerCm = 1;//每厘米像素数 + double logicalDpi; + double dPixelPerCm = 1;//每厘米像素数 // 获取当前屏幕 QScreen *screen = QGuiApplication::primaryScreen(); if (screen) { // 获取逻辑DPI - g_logicalDpi = screen->logicalDotsPerInch(); - qDebug() << "Logical DPI:" << QString::number(g_logicalDpi); + logicalDpi = screen->logicalDotsPerInch(); + qDebug() << "Logical DPI:" << QString::number(logicalDpi); - if(g_logicalDpi==0) + if(logicalDpi==0) { // 获取物理DPI double physicalDpi = screen->physicalDotsPerInch(); qDebug() << "Physical DPI:" << QString::number(physicalDpi); - g_logicalDpi = physicalDpi; + logicalDpi = physicalDpi; } //每厘米像素数 - g_dPixelPerCm = g_logicalDpi/2.54; + dPixelPerCm = logicalDpi/2.54; } else { qDebug() << "No screen available"; } - return g_dPixelPerCm; + return dPixelPerCm; } void CDrawTvd::DrawTvd(QPainter* pDC,QRectF mrt) diff --git a/logPlus/PropertyWidget.cpp b/logPlus/PropertyWidget.cpp index eca6c41..a514179 100644 --- a/logPlus/PropertyWidget.cpp +++ b/logPlus/PropertyWidget.cpp @@ -198,6 +198,18 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant emit CallManage::getInstance()->sig_changeScale(g_iScale); } } + else if("道宽(cm)" == m_propertyData[pProperty]) + { + //qDebug() << "终止深度(m)->改变"; + //当前属性类型 + if(m_strCurrentProperty == Track_Property) + { + double newWidth = variant.value(); + newWidth = newWidth * g_dPixelPerCm; + //通知界面缩放 + emit CallManage::getInstance()->sig_changeWidth(m_strUuid, m_strSlfName, m_strWellName, m_strTrackName, m_iCurrentCol, newWidth); + } + } else if("左刻度" == m_propertyData[pProperty]) { //qDebug() << "左刻度->改变"; @@ -783,6 +795,27 @@ void PropertyWidget::initWellProperty() _CreateVariantPropertyItem("通常", "终止深度(m)", 0-g_iY1, QVariant::Double); } +void PropertyWidget::initTrackProperty(QTableWidgetItem *item, int iWidth, QMyTableWidget *myTableWidget, int iCurrentCol) +{ + //初始化,清空 + InitCurrentViewInfo(); + // + m_myTableWidget = myTableWidget; + m_iCurrentCol = iCurrentCol; + // + m_strTrackName = item->text(); + m_strUuid = item->data(Qt::UserRole+1).toString(); + m_strWellName = item->data(Qt::UserRole+2).toString(); + m_strSlfName = item->data(Qt::UserRole+3).toString(); + + //当前属性类型 + m_strCurrentProperty = Track_Property; + + // + double cmWidth = (double)iWidth/(double)g_dPixelPerCm; + _CreateVariantPropertyItem("通常", "道宽(cm)", cmWidth, QVariant::Double); +} + void PropertyWidget::initCurveProperty(FormInfo *formInfo, QStringList strListOtherLine, QList listMin, QList listMax, QStringList strListOtherScaleType) { //初始化,清空 diff --git a/logPlus/PropertyWidget.h b/logPlus/PropertyWidget.h index 39e63bf..2349aaa 100644 --- a/logPlus/PropertyWidget.h +++ b/logPlus/PropertyWidget.h @@ -17,12 +17,14 @@ // #include "forminfo.h" #include "formhead.h" +#include "qmytablewidget.h" //当前曲线类型 #define Widget_Property "Widget_Property" -#define Well_Property "Well_Property" //井 -#define Curve_Property "Curve_Property" //曲线 -#define Head_Property "Head_Property" //图头,单元格 +#define Well_Property "Well_Property" //井 +#define Track_Property "Track_Property" //道 +#define Curve_Property "Curve_Property" //曲线 +#define Head_Property "Head_Property" //图头,单元格 #pragma execution_character_set("utf-8") @@ -69,6 +71,10 @@ public: double m_colWidth = 1; double m_rowHeight = 1; + //道 + QMyTableWidget *m_myTableWidget; + int m_iCurrentCol; + bool m_bSelfChange=false; public: QWidget* GetPropertyWidget(); @@ -81,6 +87,8 @@ public: void initWidgetProperty(); //可视解释整体属性 //井 void initWellProperty(); + //道 + void initTrackProperty(QTableWidgetItem *item, int iWidth, QMyTableWidget *myTableWidget, int iCurrentCol); //曲线 void initCurveProperty(FormInfo *formInfo, QStringList strListOtherLine, QList listMin, QList listMax, QStringList strListOtherScaleType); //图头 diff --git a/logPlus/formdraw.cpp b/logPlus/formdraw.cpp index 47f989d..6c0753a 100644 --- a/logPlus/formdraw.cpp +++ b/logPlus/formdraw.cpp @@ -518,6 +518,40 @@ void FormDraw::s_mouseWheel(QWheelEvent *event) emit CallManage::getInstance()->sig_mouseWheel(event); } +void FormDraw::setColWidth(int iNewWidth) +{ + // 获取当前widget的所有子控件 + const QObjectList &children = this->children(); + //判断为空 + int columnCount = children.size(); + if(columnCount==0) + { + return; + } + int i=0; + // 遍历子控件列表 + 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) + { + int dHight = form->geometry().height(); + form->setGeometry(0, 0, iNewWidth, (int)dHight);//7500-3184 + form->replot();//屏蔽,缩减时间 + } + } + } + i++; + } +} + void FormDraw::setRowHeight(double dHight, QProgressBar *progressBar, int iSplit) { int iBeginValue = progressBar->value(); diff --git a/logPlus/formdraw.h b/logPlus/formdraw.h index ea52732..a2c1ec1 100644 --- a/logPlus/formdraw.h +++ b/logPlus/formdraw.h @@ -64,6 +64,7 @@ public slots: void s_mouseWheel(QWheelEvent *event); void setRowHeight(double dHight, QProgressBar *progressBar, int iSplit); + void setColWidth(int iNewWidth); public: QString m_strUuid; diff --git a/logPlus/formtrack.cpp b/logPlus/formtrack.cpp index 14cca3d..42f1998 100644 --- a/logPlus/formtrack.cpp +++ b/logPlus/formtrack.cpp @@ -41,6 +41,9 @@ FormTrack::FormTrack(QWidget *parent, QString strWellName, QString strTrackName) header->setSectionResizeMode(i, QHeaderView::Stretch); } + // 设置选择模式为单选模式 + ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); + //曲线 connect(this, SIGNAL(sig_AddLine(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)), this, SLOT(s_addLine(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); diff --git a/logPlus/formwell.cpp b/logPlus/formwell.cpp index 567a243..865f0d9 100644 --- a/logPlus/formwell.cpp +++ b/logPlus/formwell.cpp @@ -317,6 +317,32 @@ void FormWell::s_NewTrack_No_Line(QString strUuid, QString strWellName, QString } } +int FormWell::setColWidth(int iCurrentCol, int iNewWidth) +{ + //设置列宽 + ui->tableWidget->setColumnWidth(iCurrentCol, iNewWidth); + + auto myWidget = ui->tableWidget->cellWidget(2, iCurrentCol); + if(myWidget) + { + // + FormDraw *formDraw = (FormDraw*)myWidget;//获得widget + if(formDraw) + { + formDraw->setColWidth(iNewWidth); + } + } + + //计算井宽 + int iWellWidth = 0; + int columnCount = ui->tableWidget->columnCount();//总列数 + for(int i=0; itableWidget->columnWidth(i); + } + return iWellWidth; +} + void FormWell::setRowHeight(double dHight, QProgressBar *progressBar, int iSplit) { //设置高度 diff --git a/logPlus/formwell.h b/logPlus/formwell.h index b87c071..f963367 100644 --- a/logPlus/formwell.h +++ b/logPlus/formwell.h @@ -35,6 +35,8 @@ public: QStringList getLineList(QString strWellName, QString strTrackName); void setRowHeight(double dHight, QProgressBar *progressBar, int iSplit); + //设置道宽 + int setColWidth(int iCurrentCol, int iNewWidth); public slots: void s_NewCol(QStringList listdt); diff --git a/logPlus/mainwindow.cpp b/logPlus/mainwindow.cpp index 77eb607..feb876d 100644 --- a/logPlus/mainwindow.cpp +++ b/logPlus/mainwindow.cpp @@ -225,6 +225,7 @@ void MainWindow::initToolBar() connect(m_newprojectAc, &QAction::triggered, this, &MainWindow::s_New); connect(m_openprojectAc, &QAction::triggered, this, &MainWindow::s_Open); + connect(m_saveprojectAc, &QAction::triggered, this, &MainWindow::s_SaveProject); connect(m_wellsectionwindowAc, &QAction::triggered, this, &MainWindow::s_showView); connect(m_developmentAc, &QAction::triggered, this, &MainWindow::s_development); @@ -276,35 +277,6 @@ void MainWindow::initWorkSpaceView() //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; iwinId() << ", name:" << m_stackedWidget_Center->windowTitle(); } @@ -358,6 +330,41 @@ void MainWindow::s_Open() } } +void MainWindow::s_SaveProject() +{ + //加载插件显示 + QWidget * pMyWidget = CallPlugin::getInstance()->getPluginWidget(PLUGINUNIT, (QWidget *)this); + if (pMyWidget != nullptr) + { + // + m_centerWidgets->addTab(pMyWidget, "插件视图"); + } + + //设置参数 + QString strParams = "hello"; + CallPlugin::getInstance()->setPluginParams(PLUGINUNIT, strParams); + + //获取参数 + QString strParams2 = CallPlugin::getInstance()->getPluginParams(PLUGINUNIT); + qDebug() << "getPluginParams: " << strParams2; + +// //加载插件显示 +// QWidget * pMyWidget = CallPlugin::getInstance()->getPluginWidget(MYUNITPLUGIN, NULL); +// if (pMyWidget != nullptr) +// { +// // +// m_centerWidgets->addTab(pMyWidget, "插件视图"); +// } +// //插件测试(信号槽) +// emit CallManage::getInstance()->sig_testPlugin("hello"); +} + +//收到插件消息 +void MainWindow::s_PluginMsg(QString msg) +{ + qDebug() << "s_PluginMsg:" << msg; +} + //可视解释 void MainWindow::s_showView() { diff --git a/logPlus/mainwindow.h b/logPlus/mainwindow.h index 1386a14..e76ba61 100644 --- a/logPlus/mainwindow.h +++ b/logPlus/mainwindow.h @@ -76,6 +76,7 @@ public: public slots: void s_New(); void s_Open(); + void s_SaveProject(); void s_CloseProject(); void s_Risize(); @@ -93,6 +94,9 @@ public slots: void s_ShowTable(QString strSlfName, QString strName);//表格数据查看 void s_WelllogInformation(QString strSlfName);//编辑测井信息 + //插件消息 + void s_PluginMsg(QString msg); + }; #endif // MAINWINDOW_H diff --git a/logPlus/mainwindowcurve.cpp b/logPlus/mainwindowcurve.cpp index ea27a02..45f9ad9 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -107,16 +107,15 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) : ui->tableWidget_3->verticalHeader()->hide(); ui->tableWidget_3->horizontalHeader()->hide(); - connect(this, SIGNAL(sig_NewTrackChangeWidth(QString, int)), this, SLOT(s_NewTrackChangeWidth(QString, int))); //connect(this, SIGNAL(sig_NewWell(QString, QString)), this, SLOT(s_NewWell(QString, QString))); connect(CallManage::getInstance(), SIGNAL(sig_mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*))); connect(CallManage::getInstance(), SIGNAL(sig_changeScale(int)), this, SLOT(s_changeScale(int))); + connect(CallManage::getInstance(), SIGNAL(sig_changeWidth(QString, QString, QString, QString, int, int)), this, SLOT(s_changeWidth(QString, QString, QString, QString, int, int))); //曲线选中,置顶 connect(CallManage::getInstance(), SIGNAL(sig_Raise(QString, QString, QString, QString, QString, int)), this, SLOT(s_Raise(QString, QString, QString, QString, QString, int))); - //图头 m_dock1=new QDockWidget(tr(""),this); m_dock1->setFeatures(QDockWidget::NoDockWidgetFeatures);//QDockWidget::DockWidgetMovable @@ -209,6 +208,7 @@ void MainWindowCurve::initMainToolBar() //ui->mainToolBar->addAction(m_openAc); connect(m_fixwellsectionHeaderAc, &QAction::triggered, this, &MainWindowCurve::s_showHeadTable); + connect(m_currtempliteAc, &QAction::triggered, this, &MainWindowCurve::s_currtemplite); connect(m_saveastemplateAc, &QAction::triggered, this, &MainWindowCurve::s_Save); connect(m_executeDepthShiftAc, &QAction::triggered, this, &MainWindowCurve::s_ExecuteDepthShift); @@ -910,6 +910,11 @@ void MainWindowCurve::loadStyle(const QString &qssFile) } } +void MainWindowCurve::s_currtemplite() +{ + +} + void MainWindowCurve::s_Save() { //Logdata @@ -976,15 +981,6 @@ void MainWindowCurve::s_ModuleOpen() pModuleConsole->m_pWorkflowDataModel = new CWellLogWorkflowDataModel(); pDialog->m_CurrentSLFFileName = strSlfName; pDialog->CreatParamControlWidget(); - - QString subStr = strSlfName; - int startPos = strSlfName.indexOf("Logdata"); - if (startPos>=0) - { - subStr = subStr.right(strSlfName.length() - startPos - 7); - } - pDialog->setWindowTitle(subStr); - pDialog->show(); return; } @@ -2416,6 +2412,45 @@ void MainWindowCurve::Open(QString fileFull) } } +//改变道宽 +void MainWindowCurve::s_changeWidth(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, int iCurrentCol, int iNewWidth) +{ + int columnCount = ui->tableWidget_2->columnCount();//总列数 + for(int i=0; itableWidget_2->cellWidget(1, i) != nullptr ) + { + auto myWidget = ui->tableWidget_2->cellWidget(1, i); + if(myWidget) + { + // + FormWell *widgetWell = (FormWell*)myWidget;//获得widget + if(widgetWell) + { + if(widgetWell->m_strUuid==strUuid + && widgetWell->m_strSlfName==strSlfName + && widgetWell->m_strWellName==strWellName) + { + int iWellWidth = widgetWell->setColWidth(iCurrentCol, iNewWidth); + + //调整井宽 + ui->tableWidget_2->setColumnWidth(i, iWellWidth); + } + } + } + } + } +} + //改变缩放比例 void MainWindowCurve::s_changeScale(int iNewScale) { diff --git a/logPlus/mainwindowcurve.h b/logPlus/mainwindowcurve.h index d4be5b7..066231f 100644 --- a/logPlus/mainwindowcurve.h +++ b/logPlus/mainwindowcurve.h @@ -49,6 +49,9 @@ public slots: void slot_time(); //改变缩放比例 void s_changeScale(int iNewScale); + //改变道宽 + void s_changeWidth(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, int iCurrentCol, int iNewWidth); + void onItemClicked(QTableWidgetItem* item); void mousePressEvent(QMouseEvent *event); void s_Raise(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iTableType); @@ -167,6 +170,7 @@ public slots: // void s_showHeadTable(); //显示/隐藏图头 + void s_currtemplite(); //加载图文件 void s_Save(); //保存图文件 void s_ExecuteDepthShift(); //校深 void s_ModuleOpen(); //处理算法 diff --git a/logPlus/qmytablewidget.cpp b/logPlus/qmytablewidget.cpp index 0a8a020..cee2959 100644 --- a/logPlus/qmytablewidget.cpp +++ b/logPlus/qmytablewidget.cpp @@ -135,12 +135,24 @@ void QMyTableWidget::mouseReleaseEvent(QMouseEvent *event) } else { QTableWidgetItem *item = currentItem(); - QString strTrackName = item->text(); - QString strUuid = item->data(Qt::UserRole+1).toString(); - QString strWellName = item->data(Qt::UserRole+2).toString(); - QString strSlfName = item->data(Qt::UserRole+3).toString(); - // - emit CallManage::getInstance()->sig_Raise(strUuid, strSlfName, strWellName, strTrackName, "", 2); + if(item) + { + QString strTrackName = item->text(); + QString strUuid = item->data(Qt::UserRole+1).toString(); + QString strWellName = item->data(Qt::UserRole+2).toString(); + QString strSlfName = item->data(Qt::UserRole+3).toString(); + // + int iCurrentCol = currentColumn(); + int iWidth = columnWidth(iCurrentCol); + + PropertyService()->initTrackProperty(item, iWidth, this, iCurrentCol); + // + emit CallManage::getInstance()->sig_Raise(strUuid, strSlfName, strWellName, strTrackName, "", 2); + } + else { + qDebug()<<"QMyTableWidget mouseReleaseEvent, item=null"; + + } } } }