diff --git a/app/example_plugin/pythonhandler.cpp b/app/example_plugin/pythonhandler.cpp index 1608b2a..19d1016 100644 --- a/app/example_plugin/pythonhandler.cpp +++ b/app/example_plugin/pythonhandler.cpp @@ -199,7 +199,10 @@ QVariant PythonHandler::pythonObjectToQVariant(PyObject *obj) map[key] = pythonObjectToQVariant(pValue); } } + +#ifdef _RELEASE Py_DECREF(pKeys); +#endif return map; } else if (obj == Py_None) { @@ -222,14 +225,17 @@ QString PythonHandler::capturePythonError() { PyObject* pstr = PyObject_Str(pvalue); if (pstr) { errorMsg = QString::fromUtf8(PyUnicode_AsUTF8(pstr)); +#ifdef _RELEASE Py_DECREF(pstr); +#endif } } - +#ifdef _RELEASE // 清理 Py_XDECREF(ptype); Py_XDECREF(pvalue); Py_XDECREF(ptraceback); +#endif return errorMsg; } @@ -284,8 +290,11 @@ QVariant PythonHandler::executeScript(const QString &scriptPath, PyErr_Print(); } emit addLog("无法找到函数:" + functionName); + +#ifdef _RELEASE Py_XDECREF(pFunc); Py_DECREF(pModule); +#endif return QVariant(); } @@ -427,7 +436,10 @@ QVariant PythonHandler::executeCode(const QString &code) if (pResult) { QVariant result = pythonObjectToQVariant(pResult); + +#ifdef _RELEASE Py_DECREF(pResult); +#endif return result; } else { PyErr_Print(); diff --git a/common/common.h b/common/common.h new file mode 100644 index 0000000..0bb41e2 --- /dev/null +++ b/common/common.h @@ -0,0 +1,16 @@ +#ifndef LOG_COMMON_H +#define LOG_COMMON_H + +#include + +// 定义一个枚举,方便位操作(可选) +enum BorderFlag { + NoBorder = 0, + TopBorder = 1 << 0, + BottomBorder = 1 << 1, + LeftBorder = 1 << 2, + RightBorder = 1 << 3 +}; +Q_DECLARE_FLAGS(BorderFlags, BorderFlag) + +#endif // LOG_COMMON_H diff --git a/logPlus/ItemBorderDelegate.h b/logPlus/ItemBorderDelegate.h new file mode 100644 index 0000000..ab4d056 --- /dev/null +++ b/logPlus/ItemBorderDelegate.h @@ -0,0 +1,64 @@ +#pragma once + +#include +#include +#include +#include "common.h" + +#pragma execution_character_set("utf-8") + + +// 设置某个单元格的边框状态 +void setItemBorderFlags(QTableWidgetItem *item, BorderFlags flags) { + item->setData(Qt::UserRole, static_cast(flags)); +} + +// 获取边框状态 +BorderFlags getItemBorderFlags(const QTableWidgetItem *item) { + return static_cast(item->data(Qt::UserRole).toInt()); +} + +class ItemBorderDelegate : public QStyledItemDelegate { +public: + using QStyledItemDelegate::QStyledItemDelegate; + + void paint(QPainter *painter, const QStyleOptionViewItem &option, + const QModelIndex &index) const override { + // 1. 绘制默认内容(文本、图标等) + QStyledItemDelegate::paint(painter, option, index); + + const QTableWidget* ptabWgt = qobject_cast(const_cast(option.widget)); + if (!ptabWgt) return; + // 2. 获取该单元格存储的边框标志 + QTableWidgetItem *item = ptabWgt->item(index.row(), index.column()); + if (!item) return; + + BorderFlags flags = getItemBorderFlags(item); + if (flags == NoBorder) return; + + // 3. 准备绘制边框 + painter->save(); + painter->setPen(QPen(Qt::black, 2)); // 颜色、宽度可自定义 + QRect rect = option.rect; + rect.setLeft(rect.left() + 1); + rect.setTop(rect.top() + 1); + // 上边框 + if (flags & TopBorder) { + painter->drawLine(rect.topLeft(), rect.topRight()); + } + // 下边框 + if (flags & BottomBorder) { + painter->drawLine(rect.bottomLeft(), rect.bottomRight()); + } + // 左边框 + if (flags & LeftBorder) { + painter->drawLine(rect.topLeft(), rect.bottomLeft()); + } + // 右边框 + if (flags & RightBorder) { + painter->drawLine(rect.topRight(), rect.bottomRight()); + } + + painter->restore(); + } +}; \ No newline at end of file diff --git a/logPlus/TransparentDraggableGujing.cpp b/logPlus/TransparentDraggableGujing.cpp index 0130135..0a7a17d 100644 --- a/logPlus/TransparentDraggableGujing.cpp +++ b/logPlus/TransparentDraggableGujing.cpp @@ -176,7 +176,7 @@ void TransparentDraggableGujing::setRange(double left_Low, double right_Hight, b if(left_Low >= right_Hight) return; double lY1 = mPlot->yAxis->range().lower;//+10 - double lY2 = mPlot->yAxis->range().upper; + double lY2 = mPlot->yAxis->range().upper-3; mRect->topLeft->setCoords(left_Low, lY1); mRect->bottomRight->setCoords(right_Hight, lY2); diff --git a/logPlus/TransparentDraggableResult.cpp b/logPlus/TransparentDraggableResult.cpp index d157b58..aab6b49 100644 --- a/logPlus/TransparentDraggableResult.cpp +++ b/logPlus/TransparentDraggableResult.cpp @@ -167,8 +167,8 @@ void TransparentDraggableResult::setRange(double left_Low, double right_Hight, b { if(left_Low >= right_Hight) return; - double lY1 = m_nShowPos*g_dPixelPerCm+mPlot->yAxis->range().lower;//+10 - double lY2 = m_nShowPos*g_dPixelPerCm+(mPlot->yAxis->range().upper-mPlot->yAxis->range().lower)* (m_nConclusionProportion /100.0f); + double lY1 = m_nShowPos*g_dPixelPerCm+mPlot->yAxis->range().lower-1;//+10 + double lY2 = m_nShowPos*g_dPixelPerCm+(mPlot->yAxis->range().upper-mPlot->yAxis->range().lower)* (m_nConclusionProportion /100.0f)-2; mRect->topLeft->setCoords(left_Low, lY1); mRect->bottomRight->setCoords(right_Hight, mPlot->yAxis->range().upper); diff --git a/logPlus/formdraw.cpp b/logPlus/formdraw.cpp index 7a5c7da..b9ea970 100644 --- a/logPlus/formdraw.cpp +++ b/logPlus/formdraw.cpp @@ -2710,15 +2710,39 @@ void FormDraw::crossTrackSetting() } +void FormDraw::setBorderFlags(BorderFlags flags) +{ + m_BorderFlags = flags; +} + void FormDraw::paintEvent(QPaintEvent*) { - //if (m_listLineName.size() > 0 && m_listLineName.at(0) == "AC") - //{ - // QPainter painter(this); - // QRect rect = this->rect(); - // //背景透明 - // painter.fillRect(rect.left(), rect.top(), rect.width(), rect.height(), QColor(200, 0, 0)); //QColor(67, 67, 67, 100) - //} + QPainter painter(this); + QRect rect = this->rect(); + rect.setLeft(rect.left() + 1); + rect.setTop(rect.top() + 1); + // 3. 准备绘制边框 + painter.save(); + painter.setPen(QPen(Qt::black, 2)); // 颜色、宽度可自定义 + + // 上边框 + if (m_BorderFlags & TopBorder) { + painter.drawLine(rect.topLeft(), rect.topRight()); + } + // 下边框 + if (m_BorderFlags & BottomBorder) { + painter.drawLine(rect.bottomLeft(), rect.bottomRight()); + } + // 左边框 + if (m_BorderFlags & LeftBorder) { + painter.drawLine(rect.topLeft(), rect.bottomLeft()); + } + // 右边框 + if (m_BorderFlags & RightBorder) { + painter.drawLine(rect.topRight(), rect.bottomRight()); + } + + painter.restore(); } @@ -3071,6 +3095,10 @@ void FormDraw::s_addWave(QString strUuid, QString strSlfName, QString strWellNam } else { + //此处追加,参照了下方setDrawData函数的处理 + //不然没有设置setRange初始范围,不支持新的右侧滚动条的setRange + curv->m_bX2Y = false; + curv->initWave(strSlfName, strWaveName); _nSamples = curv->getScaleV(); } @@ -3401,7 +3429,8 @@ void FormDraw::s_MouseMove(QString strUuid, QString strWellName, QString strTrac int index=logio->OpenCurve(form->m_strLineName.toStdString().c_str()); if(index<0) { delete logio; - return; + continue; + //return; } logio->ReadCurve(index, dep, 1, &fValue); logio->CloseCurve(index); @@ -3710,6 +3739,10 @@ void FormDraw::s_addGanZuangTu(QString strUuid, QString strSlfName, QString strW curv->yAxis->setTicks(false); curv->xAxis2->setTicks(false); curv->yAxis2->setTicks(false); + curv->xAxis->setVisible(false); + curv->xAxis2->setVisible(false); + curv->yAxis->setVisible(false); + curv->yAxis2->setVisible(false); //蝌蚪图 // curv->mKedou = true; //隐藏网格 @@ -4173,6 +4206,10 @@ void FormDraw::s_addJiegutext(QString strUuid, QString strSlfName, QString strWe curv->yAxis->setTicks(false); curv->xAxis2->setTicks(false); curv->yAxis2->setTicks(false); + curv->xAxis->setVisible(false); + curv->xAxis2->setVisible(false); + curv->yAxis->setVisible(false); + curv->yAxis2->setVisible(false); QColor newlineColor=QColor(0,0,0); QString strAliasName = "气测-FMT-射孔-文本"; @@ -4571,6 +4608,10 @@ void FormDraw::s_addTubingstring(QString strUuid, QString strSlfName, QString st curv->yAxis->setTicks(false); curv->xAxis2->setTicks(false); curv->yAxis2->setTicks(false); + curv->xAxis->setVisible(false); + curv->xAxis2->setVisible(false); + curv->yAxis->setVisible(false); + curv->yAxis2->setVisible(false); //套管组件 //QString strWaveName = "TUBTOOLS"; @@ -4774,6 +4815,11 @@ void FormDraw::initForm(QMyCustomPlot *widget, QString strSlfName, QString strLi widget->xAxis->ticker()->setTickCount(10);//x个主刻度 widget->yAxis->ticker()->setTickCount(60);//y个主刻度 + widget->xAxis->setVisible(false); + widget->xAxis2->setVisible(false); + widget->yAxis->setVisible(false); + widget->yAxis2->setVisible(false); + //对调XY轴,在最前面设置 QCPAxis *yAxis = widget->yAxis; QCPAxis *xAxis = widget->xAxis; @@ -5442,6 +5488,10 @@ void FormDraw::initTableLine(QMyCustomPlot *widget, QString strSlfName, QString widget->yAxis->setTicks(false); widget->xAxis2->setTicks(false); widget->yAxis2->setTicks(false); + widget->xAxis->setVisible(false); + widget->xAxis2->setVisible(false); + widget->yAxis->setVisible(false); + widget->yAxis2->setVisible(false); // if (m_bTableData) { @@ -5493,6 +5543,10 @@ void FormDraw::initWords(QMyCustomPlot *widget, QString strSlfName, QString strL widget->yAxis->setTicks(false); widget->xAxis2->setTicks(false); widget->yAxis2->setTicks(false); + widget->xAxis->setVisible(false); + widget->xAxis2->setVisible(false); + widget->yAxis->setVisible(false); + widget->yAxis2->setVisible(false); // widget->LoadFromSLF_Text(strSlfName, strLineName); @@ -5539,6 +5593,10 @@ void FormDraw::initLayer(QMyCustomPlot *widget, QString strSlfName, QString strL widget->yAxis->setTicks(false); widget->xAxis2->setTicks(false); widget->yAxis2->setTicks(false); + widget->xAxis->setVisible(false); + widget->xAxis2->setVisible(false); + widget->yAxis->setVisible(false); + widget->yAxis2->setVisible(false); //地质层位道 widget->LoadFromSLF_Layer(strSlfName, strLineName); @@ -5588,6 +5646,10 @@ void FormDraw::initIMAGE_DATA(QMyCustomPlot *widget, QString strSlfName, QString widget->yAxis->setTicks(false); widget->xAxis2->setTicks(false); widget->yAxis2->setTicks(false); + widget->xAxis->setVisible(false); + widget->xAxis2->setVisible(false); + widget->yAxis->setVisible(false); + widget->yAxis2->setVisible(false); // widget->LoadFromIMAGE_SLF(strSlfName, strLineName); //显示文本 @@ -5699,6 +5761,10 @@ void FormDraw::initResult(QMyCustomPlot *widget, QString strSlfName, QString str widget->yAxis->setTickLabels(false); widget->xAxis2->setTickLabels(false); widget->xAxis2->setTickLabels(false); + widget->xAxis->setVisible(false); + widget->xAxis2->setVisible(false); + widget->yAxis->setVisible(false); + widget->yAxis2->setVisible(false); // LoadFromSLF_Result(widget, strSlfName, strLineName); @@ -5793,6 +5859,10 @@ void FormDraw::initGeoLith(QMyCustomPlot *widget, QString strSlfName, QString st widget->yAxis->setTicks(false); widget->xAxis2->setTicks(false); widget->yAxis2->setTicks(false); + widget->xAxis->setVisible(false); + widget->xAxis2->setVisible(false); + widget->yAxis->setVisible(false); + widget->yAxis2->setVisible(false); //含油占比 if(listOtherProperty.size()>=12) @@ -5903,6 +5973,10 @@ void FormDraw::initSwallCore(QMyCustomPlot *widget, QString strSlfName, QString widget->yAxis->setTicks(false); widget->xAxis2->setTicks(false); widget->yAxis2->setTicks(false); + widget->xAxis->setVisible(false); + widget->xAxis2->setVisible(false); + widget->yAxis->setVisible(false); + widget->yAxis2->setVisible(false); // widget->LoadFromSLF_SwallCore(strSlfName, strLineName); @@ -5950,6 +6024,10 @@ void FormDraw::initGujing(QMyCustomPlot *widget, QString strSlfName, QString str widget->yAxis->setTicks(false); widget->xAxis2->setTicks(false); widget->yAxis2->setTicks(false); + widget->xAxis->setVisible(false); + widget->xAxis2->setVisible(false); + widget->yAxis->setVisible(false); + widget->yAxis2->setVisible(false); // widget->LoadFromSLF_Gujing(strSlfName, strLineName); @@ -5969,7 +6047,8 @@ void FormDraw::initDepth(QMyCustomPlot *curv) { // x轴隐藏 curv->yAxis->setTicks(true); - curv->yAxis2->setVisible(false); + curv->yAxis->setVisible(true); + curv->yAxis->setBasePen(Qt::NoPen); //curv->yAxis->setTickLabels(true); curv->yAxis->setTickLabelSide(QCPAxis::lsInside); @@ -6826,6 +6905,10 @@ void FormDraw::initCorePhysics(QMyCustomPlot *widget, QString strSlfName, QStrin widget->yAxis->setTicks(false); widget->xAxis2->setTicks(false); widget->yAxis2->setTicks(false); + widget->xAxis->setVisible(false); + widget->xAxis2->setVisible(false); + widget->yAxis->setVisible(false); + widget->yAxis2->setVisible(false); QVector x, y; @@ -7072,6 +7155,10 @@ void FormDraw::DrawJykt(QMyCustomPlot *widget, QString strSlfName) widget->yAxis->setTicks(false); widget->xAxis2->setTicks(false); widget->yAxis2->setTicks(false); + widget->xAxis->setVisible(false); + widget->xAxis2->setVisible(false); + widget->yAxis->setVisible(false); + widget->yAxis2->setVisible(false); //------------- float tempf,flVal; @@ -7198,6 +7285,10 @@ void FormDraw::DrawDenv(QMyCustomPlot *widget, QString strSlfName) widget->yAxis->setTicks(false); widget->xAxis2->setTicks(false); widget->yAxis2->setTicks(false); + widget->xAxis->setVisible(false); + widget->xAxis2->setVisible(false); + widget->yAxis->setVisible(false); + widget->yAxis2->setVisible(false); // QPen pPen(m_TailColor,m_nTailWidth); diff --git a/logPlus/formdraw.h b/logPlus/formdraw.h index a3b9902..7267b74 100644 --- a/logPlus/formdraw.h +++ b/logPlus/formdraw.h @@ -10,6 +10,7 @@ #include "LogIO.h" #include "MemRdWt.h" #include "FormLine.h" +#include "common.h" #pragma execution_character_set("utf-8") @@ -86,6 +87,8 @@ public: // 跨道设置 void crossTrackSetting(); + void setBorderFlags(BorderFlags flags); + private: Ui::FormDraw *ui; @@ -126,6 +129,8 @@ public: QStringList m_listWaveName; QStringList m_listTableName; + BorderFlags m_BorderFlags; + //X坐标 float m_vmax; float m_vmin; diff --git a/logPlus/forminfo.cpp b/logPlus/forminfo.cpp index 860bbdf..b0b4bb2 100644 --- a/logPlus/forminfo.cpp +++ b/logPlus/forminfo.cpp @@ -770,7 +770,7 @@ void FormInfo::paintEvent(QPaintEvent* event) QRect rectRound(rect.left()+2,rect.top()+4, rect.width()-4, rect.height()-8); painter.setPen(QPen(m_lineColor, m_dWidth, m_lineStyle)); //painter.drawRoundRect(rectRound);//利用画刷(颜色/岩性图片),画框 - painter.drawRect(rectRound); + //painter.drawRect(rectRound); QString strShowTxt = ""; painter.setBrush(Qt::NoBrush); // 确保文字不被填充色遮挡 @@ -1765,6 +1765,13 @@ void FormInfo::contextMenuEvent(QContextMenuEvent *event) menu.addAction(QIcon(::GetImagePath() + "icon/Delete.png"), "删除当前对象", this, &FormInfo::onDeleteTable); menu.exec(event->globalPos()); } + else if(m_strType=="waveObject") + { + QMenu menu(this); + menu.addAction(QIcon(::GetImagePath() + "icon/Sheet.png"), "数据对象查看", this, &FormInfo::onShowWave); + menu.addAction(QIcon(::GetImagePath() + "icon/Delete.png"), "删除当前对象", this, &FormInfo::onDeleteWave); + menu.exec(event->globalPos()); + } else if(m_strType=="JiegutextObject") { //气测/FMT/射孔/文本 @@ -1820,3 +1827,15 @@ void FormInfo::onDeleteTable() //删除表格 emit CallManage::getInstance()->sig_delTableLine(m_strUuid, m_strWellName, m_strTrackName, m_strLineName); } + +//波列查看 +void FormInfo::onShowWave() +{ + emit CallManage::getInstance()->sig_ShowWave(m_strSlfName, m_strLineName); +} +//删除波列 +void FormInfo::onDeleteWave() +{ + //删除Wave + emit CallManage::getInstance()->sig_delWave(m_strUuid, m_strWellName, m_strTrackName, m_strLineName); +} diff --git a/logPlus/forminfo.h b/logPlus/forminfo.h index b058f83..ccb74b8 100644 --- a/logPlus/forminfo.h +++ b/logPlus/forminfo.h @@ -382,6 +382,12 @@ public slots: //删除表格 void onDeleteTable(); + + //波列查看 + void onShowWave(); + //删除波列 + void onDeleteWave(); + }; diff --git a/logPlus/formtrack.cpp b/logPlus/formtrack.cpp index 09b42d4..d71a633 100644 --- a/logPlus/formtrack.cpp +++ b/logPlus/formtrack.cpp @@ -54,15 +54,16 @@ FormTrack::FormTrack(QWidget *parent, QString strWellName, QString strTrackName) this, SLOT(s_delLine(QString, QString, QString, QString))); //表格 - connect(this, SIGNAL(sig_AddWave(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)), - this, SLOT(s_addWave(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); + connect(this, SIGNAL(sig_AddTableLine(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString, QStringList)), + this, SLOT(s_AddTableLine(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString, QStringList))); connect(CallManage::getInstance(), SIGNAL(sig_delTableLine(QString, QString, QString, QString)), this, SLOT(s_delTableLine(QString, QString, QString, QString))); //波列 - connect(this, SIGNAL(sig_AddTableLine(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString, QStringList)), - this, SLOT(s_AddTableLine(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString, QStringList))); - + connect(this, SIGNAL(sig_AddWave(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)), + this, SLOT(s_addWave(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); + connect(CallManage::getInstance(), SIGNAL(sig_delWave(QString, QString, QString, QString)), + this, SLOT(s_delWave(QString, QString, QString, QString))); // 深度 connect(this, SIGNAL(sig_AddDepth(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)), this, SLOT(s_addDepth(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); @@ -171,6 +172,44 @@ FormInfo* FormTrack::getFormInfoByParameters(QString strUuid, QString strWellNam return NULL; } +void FormTrack::setBorderFlags(BorderFlags flags) +{ + m_BorderFlags = flags; +} + +void FormTrack::paintEvent(QPaintEvent *event) +{ + QWidget::paintEvent(event); + + QPainter painter(this); + QRect rect = this->rect(); + + rect.setLeft(rect.left() + 1); + rect.setTop(rect.top() + 1); + // 绘制边框 + painter.save(); + painter.setPen(QPen(Qt::black, 2)); // 颜色、宽度可自定义 + + // 上边框 + if (m_BorderFlags & TopBorder) { + painter.drawLine(rect.topLeft(), rect.topRight()); + } + // 下边框 + if (m_BorderFlags & BottomBorder) { + painter.drawLine(rect.bottomLeft(), rect.bottomRight()); + } + // 左边框 + if (m_BorderFlags & LeftBorder) { + painter.drawLine(rect.topLeft(), rect.bottomLeft()); + } + // 右边框 + if (m_BorderFlags & RightBorder) { + painter.drawLine(rect.topRight(), rect.bottomRight()); + } + + painter.restore(); +} + // // void FormTrack::setTrackPropert(QJsonObject trackObj) // { @@ -537,6 +576,38 @@ void FormTrack::s_addWave(QString strSlfName, QString strWellName, QString strTr } +void FormTrack::s_delWave(QString strUuid, QString strWellName, QString strTrackName, QString strLineName) +{ + //井名&道名不一致 + if(strUuid == m_strUuid && m_strWellName == strWellName && m_strTrackName == strTrackName) + { + } + else + { + return; + } + // + int rowCount = ui->tableWidget->rowCount(); + for(int i=0; itableWidget->cellWidget(i, 0) != nullptr ) + { + auto myWidget = ui->tableWidget->cellWidget(i, 0); + FormInfo *formInfo = qobject_cast(myWidget);//获得widget + if(formInfo) + { + if(strUuid == formInfo->m_strUuid + && formInfo->m_strWellName == strWellName + && formInfo->m_strTrackName == strTrackName + && formInfo->m_strLineName == strLineName) + { + ui->tableWidget->removeRow(i); + } + } + } + } +} + void FormTrack::s_AddTableLine(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QStringList listOtherProperty) { if(strLineName == "FRAC_HOLE.TABLE" || strLineName == "WORDS_RELUST" || strLineName == "RESULT" diff --git a/logPlus/formtrack.h b/logPlus/formtrack.h index 56a9c59..c581737 100644 --- a/logPlus/formtrack.h +++ b/logPlus/formtrack.h @@ -4,6 +4,7 @@ #include #include "forminfo.h" #include +#include "common.h" #pragma execution_character_set("utf-8") @@ -56,9 +57,14 @@ public: FormInfo* getFormInfoByParameters(QString strUuid, QString strWellName, QString strTrackName, QString strLineName); + void setBorderFlags(BorderFlags flags); + private: Ui::FormTrack *ui; +protected: + void paintEvent(QPaintEvent *event); + public: QString m_strUuid; // 道ID @@ -69,7 +75,7 @@ public: FormInfo *m_formInfo = NULL; // 创建自定义单元格委托 //NoLRBorderDelegate *m_delegate; - + BorderFlags m_BorderFlags; public: void Add(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QString strType, QStringList listOtherProperty={}); @@ -101,6 +107,7 @@ public slots: void s_delLine(QString strUuid, QString strWellName, QString strTrackName, QString strLineName); void s_addWave(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType); + void s_delWave(QString strUuid, QString strWellName, QString strTrackName, QString strLineName); void s_AddTableLine(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strAliasName, QString strUnit, QColor lineColor, double dWidth, float vmax, float vmin, QString strScaleType, QStringList listOtherProperty={}); void s_delTableLine(QString strUuid, QString strWellName, QString strTrackName, QString strLineName); diff --git a/logPlus/formtrack.ui b/logPlus/formtrack.ui index 3b43ebb..81ecae2 100644 --- a/logPlus/formtrack.ui +++ b/logPlus/formtrack.ui @@ -15,16 +15,16 @@ - 0 + 2 - 0 + 2 - 0 + 2 - 0 + 2 diff --git a/logPlus/formtracktop.cpp b/logPlus/formtracktop.cpp index e5e3b07..79d5c10 100644 --- a/logPlus/formtracktop.cpp +++ b/logPlus/formtracktop.cpp @@ -30,6 +30,11 @@ FormTrackTop::~FormTrackTop() delete ui; } +void FormTrackTop::setBorderFlags(BorderFlags flags) +{ + m_BorderFlags = flags; +} + void FormTrackTop::setTrackTopPropert(QJsonObject topObj) { if (topObj.contains("Font")) @@ -60,6 +65,8 @@ QJsonObject FormTrackTop::makeJson() void FormTrackTop::paintEvent(QPaintEvent* event) { + QWidget::paintEvent(event); + QPainter painter(this); QRect rect = this->rect(); //背景透明 @@ -70,7 +77,33 @@ void FormTrackTop::paintEvent(QPaintEvent* event) painter.setPen(m_fontColor); // fontColor QColor(220, 220, 220) painter.drawText(rect.left(), rect.top(), rect.width(), rect.height(), Qt::AlignCenter, m_strTrackName); - QWidget::paintEvent(event); + rect.setLeft(rect.left() + 1); + rect.setTop(rect.top() + 1); + // 3. 准备绘制边框 + painter.save(); + painter.setPen(QPen(Qt::black, 2)); // 颜色、宽度可自定义 + + // 上边框 + if (m_BorderFlags & TopBorder) { + painter.drawLine(rect.topLeft(), rect.topRight()); + } + // 下边框 + if (m_BorderFlags & BottomBorder) { + painter.drawLine(rect.bottomLeft(), rect.bottomRight()); + } + // 左边框 + if (m_BorderFlags & LeftBorder) { + painter.drawLine(rect.topLeft(), rect.bottomLeft()); + } + // 右边框 + if (m_BorderFlags & RightBorder) { + painter.drawLine(rect.topRight(), rect.bottomRight()); + } + + painter.restore(); + + + } void FormTrackTop::dragEnterEvent(QDragEnterEvent* event) diff --git a/logPlus/formtracktop.h b/logPlus/formtracktop.h index 516ab2e..ae99714 100644 --- a/logPlus/formtracktop.h +++ b/logPlus/formtracktop.h @@ -8,6 +8,7 @@ #include #include #include +#include "common.h" #pragma execution_character_set("utf-8") @@ -23,6 +24,8 @@ public: explicit FormTrackTop(QWidget *parent = nullptr, QString strSlfName="", QString strWellName="", QString strTrackName="", QString strLineName="", QColor lineColor=QColor(255,0,0)); ~FormTrackTop(); + void setBorderFlags(BorderFlags flags); + void setTrackTopPropert(QJsonObject topObj); private: Ui::FormTrackTop *ui; @@ -50,6 +53,7 @@ public: QFont m_font; QColor m_fontColor;//颜色 + BorderFlags m_BorderFlags; public: diff --git a/logPlus/formwell.cpp b/logPlus/formwell.cpp index 39cccc1..ea9f29c 100644 --- a/logPlus/formwell.cpp +++ b/logPlus/formwell.cpp @@ -23,17 +23,15 @@ FormWell::FormWell(QWidget *parent, QString strWellName) : // ui->tableWidget->verticalHeader()->hide(); //行 - //ui->tableWidget->horizontalHeader()->hide();//列 + ui->tableWidget->horizontalHeader()->hide();//列 int rowcount = 3; //总行数 ui->tableWidget->setRowCount(rowcount); //动态设置行数 //ui->tableWidget->verticalHeader()->setFixedWidth(3);//标题栏宽度 ui->tableWidget->horizontalHeader()->setFixedHeight(3); - //左右边框隐藏 - ui->tableWidget->setStyleSheet("QTableView::item {border-left: 0px solid black;} \ - QTableView::item:selected {border-left: 0px solid black; color:#57595B; background:#E4E4E4;}\ - QTableView::item {border-right: 0px solid black;} \ - QTableView::item:selected {border-right: 0px solid black;}"); - //"QTableView::item:selected {color:#57595B; background:#E4E4E4;}" + + ui->tableWidget->setShowGrid(false); + ui->tableWidget->setStyleSheet("QTableView {border: 0px solid black;} QTableView::item {border: 0px solid black;} \ + QTableView::item:selected {color:#57595B; background:#E4E4E4;}"); // 假设你的类中有一个槽函数:onTableRowsInserted(QModelIndex parent, int first, int last) //connect(ui->tableWidget->model(), &QAbstractItemModel::columnsInserted, @@ -189,6 +187,7 @@ QVector FormWell::new_track(QStringList listdt, QString strTrackName) ui->tableWidget->setRowHeight(i, 100); // FormTrackTop* trackTop= new FormTrackTop(this, strSlfName, strWellName, strTrackName); + trackTop->setBorderFlags(BorderFlags(BottomBorder | RightBorder)); // if ("curveObject" == strType) // trackTop->setFixedWidth(nW/2); vec << trackTop; @@ -203,6 +202,7 @@ QVector FormWell::new_track(QStringList listdt, QString strTrackName) //曲线名称栏 formTrack = new FormTrack(this, strWellName, strTrackName); + formTrack->setBorderFlags(BorderFlags(BottomBorder | RightBorder)); // if ("curveObject" == strType) // formTrack->setFixedWidth(nW / 2); vec << formTrack; @@ -228,6 +228,7 @@ QVector FormWell::new_track(QStringList listdt, QString strTrackName) ui->tableWidget->setRowHeight(i, (int)dHight);//7582 //曲线绘制栏 FormDraw *formDraw = new FormDraw(this, strWellName, strTrackName); + formDraw->setBorderFlags(BorderFlags(BottomBorder | RightBorder)); vec << formDraw; formDraw->m_iY1 = m_iY1; formDraw->m_iY2 = m_iY2; @@ -244,6 +245,11 @@ QVector FormWell::new_track(QStringList listdt, QString strTrackName) return vec; } +void FormWell::setBorderFlags(BorderFlags flags) +{ + m_BorderFlags = flags; +} + int FormWell::getTableWidgetColumn(QString strTrackUuid) { int nret = -1; @@ -260,6 +266,36 @@ int FormWell::getTableWidgetColumn(QString strTrackUuid) return nret; } +void FormWell::paintEvent(QPaintEvent *event) +{ + QPainter painter(this); + QRect rect = this->rect(); + rect.setLeft(rect.left() + 1); + rect.setTop(rect.top() + 1); + // 3. 准备绘制边框 + painter.save(); + painter.setPen(QPen(Qt::black, 2)); // 颜色、宽度可自定义 + + // 上边框 + if (m_BorderFlags & TopBorder) { + painter.drawLine(rect.topLeft(), rect.topRight()); + } + // 下边框 + if (m_BorderFlags & BottomBorder) { + painter.drawLine(rect.bottomLeft(), rect.bottomRight()); + } + // 左边框 + if (m_BorderFlags & LeftBorder) { + painter.drawLine(rect.topLeft(), rect.bottomLeft()); + } + // 右边框 + if (m_BorderFlags & RightBorder) { + painter.drawLine(rect.topRight(), rect.bottomRight()); + } + + painter.restore(); +} + void FormWell::s_Raise(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iTableType, QString strFormInfoType) { if(m_strUuid == strUuid && diff --git a/logPlus/formwell.h b/logPlus/formwell.h index 2f577d7..4068140 100644 --- a/logPlus/formwell.h +++ b/logPlus/formwell.h @@ -5,6 +5,7 @@ #include "formtrack.h" #include "formdraw.h" #include "formtracktop.h" +#include "common.h" #pragma execution_character_set("utf-8") @@ -25,9 +26,12 @@ public: QVector new_track(QStringList listdt, QString strTrackName = ""); + void setBorderFlags(BorderFlags flags); + // 根据道ID,获取列索引 int getTableWidgetColumn(QString strTrackUuid); - +protected: + void paintEvent(QPaintEvent *event); private: Ui::FormWell *ui; @@ -43,6 +47,8 @@ public: // 道图形 QMap> m_mapFormDraw; + BorderFlags m_BorderFlags; + public: QJsonObject makeJson(); QStringList getLineList(QString strWellName, QString strTrackName); diff --git a/logPlus/formwell.ui b/logPlus/formwell.ui index 7d16172..b653466 100644 --- a/logPlus/formwell.ui +++ b/logPlus/formwell.ui @@ -15,16 +15,16 @@ - 0 + 2 - 0 + 2 - 0 + 2 - 0 + 2 diff --git a/logPlus/logplus.vcxproj b/logPlus/logplus.vcxproj index 8eebb17..4de351d 100644 --- a/logPlus/logplus.vcxproj +++ b/logPlus/logplus.vcxproj @@ -20,6 +20,7 @@ + @@ -35,6 +36,7 @@ + diff --git a/logPlus/logplus.vcxproj.filters b/logPlus/logplus.vcxproj.filters index 11e9e29..7457f9b 100644 --- a/logPlus/logplus.vcxproj.filters +++ b/logPlus/logplus.vcxproj.filters @@ -68,6 +68,12 @@ common + + Header Files + + + common + diff --git a/logPlus/mainwindow.cpp b/logPlus/mainwindow.cpp index 23007fa..d154432 100644 --- a/logPlus/mainwindow.cpp +++ b/logPlus/mainwindow.cpp @@ -407,13 +407,6 @@ void MainWindow::s_New() void MainWindow::s_Open() { - //关闭老项目 - bool bClosed = closeProject(); - if(!bClosed) - { - return; - } - //打开 QString fileFull = ""; fileFull = QFileDialog::getOpenFileName(this, @@ -422,6 +415,13 @@ void MainWindow::s_Open() tr("项目文件(*.wwl)")); if (!fileFull.isEmpty()) { + //关闭老项目 + bool bClosed = closeProject(); + if(!bClosed) + { + return; + } + emit CallManage::getInstance()->sig_OpenProject(fileFull); } } diff --git a/logPlus/mainwindowcurve.cpp b/logPlus/mainwindowcurve.cpp index fa0e346..006ad03 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -17,6 +17,7 @@ #include "selectwelldialog.h" #include "mainwindow.h" #include +#include "ItemBorderDelegate.h" //主窗口,为了方便获取tab当前页 extern MainWindow *g_mainWindow; @@ -66,18 +67,19 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) : ui->toolBar_3->hide(); ui->toolBar_plugin->hide(); //加载样式 - loadStyle(":/qrc/qss/flatgray.css"); + //loadStyle(":/qrc/qss/flatgray.css"); + //this->setStyleSheet("QWidget{border: 1px solid black;}"); + //ui->centralwidget->setVisible(false); + //ui->tableWidget_2->setVisible(false); //------------------------------------- //ui->tableWidget_2->setFrameShape(QFrame::NoFrame); //设置无边框 //隐藏网格线 ui->tableWidget_2->setShowGrid(false); - //设置样式表,只显示竖直边框 - ui->tableWidget_2->setStyleSheet( "QTableView::item {border-left: 1px solid black;} \ - QTableView::item:selected {border-left: 1px solid black; color:#57595B; background:#E4E4E4;}\ - QTableView::item {border-right: 1px solid black;} \ - QTableView::item:selected {border-right: 1px solid black;}"); + ui->tableWidget_2->setItemDelegate(new ItemBorderDelegate(ui->tableWidget_2)); + ui->tableWidget_2->setStyleSheet("QTableView {border: 0px solid black;} QTableView::item {border: 0px solid black;} \ + QTableView::item:selected {color:#57595B; background:#E4E4E4;}"); ui->tableWidget_2->verticalHeader()->hide(); //行 //ui->tableWidget_2->horizontalHeader()->hide();//列 @@ -2904,6 +2906,7 @@ void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName) ui->tableWidget_2->setRowHeight(i, 100); // QTableWidgetItem* item = new QTableWidgetItem(strWellName); + setItemBorderFlags(item, BorderFlags(TopBorder | BottomBorder | LeftBorder | RightBorder)); item->setData(Qt::UserRole + 1, strSlfName); item->setFlags(item->flags() & (~Qt::ItemIsEditable)); item->setTextAlignment(Qt::AlignCenter); //设置文本居中 @@ -2928,6 +2931,7 @@ void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName) ui->tableWidget_2->setRowHeight(i, (int)dHight);//8020 // FormWell *widgetWell = new FormWell(this, strWellName); + widgetWell->setBorderFlags(BorderFlags(BottomBorder | LeftBorder | RightBorder)); widgetWell->m_iY1 = m_iY1; widgetWell->m_iY2 = m_iY2; widgetWell->m_strUuid = m_strUuid; diff --git a/logPlus/mainwindowcurve.ui b/logPlus/mainwindowcurve.ui index 1542b5b..f802e24 100644 --- a/logPlus/mainwindowcurve.ui +++ b/logPlus/mainwindowcurve.ui @@ -15,14 +15,26 @@ + + 9 + + + 9 + - 3 + 9 + + + 9 + + + diff --git a/logPlus/preqtablewidget.cpp b/logPlus/preqtablewidget.cpp index bee6c2f..2d1b5e0 100644 --- a/logPlus/preqtablewidget.cpp +++ b/logPlus/preqtablewidget.cpp @@ -163,19 +163,23 @@ void PreQTableWidget::dropEvent(QDropEvent *event) } else if(strType=="JiegutextObject") { - //删除表格 -// emit CallManage::getInstance()->sig_delTableLine(m_strUuid, strWellName, strTrackName, strLineName); - //气测/FMT/射孔/文本 emit CallManage::getInstance()->sig_AddJiegutext(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); } else if(strType=="LogfaceObject") { - //删除表格 -// emit CallManage::getInstance()->sig_delTableLine(m_strUuid, strWellName, strTrackName, strLineName); - - //沉积相 - emit CallManage::getInstance()->sig_AddLogface(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); + if (list.size() > 4) + { + QString strListPropertyText = list[4]; + QStringList listOtherProperty = strListPropertyText.split(", "); // 以逗号加空格为分隔符分割字符串 + //沉积相 + emit CallManage::getInstance()->sig_AddLogface(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName, 0, listOtherProperty); + } + else + { + //沉积相 + emit CallManage::getInstance()->sig_AddLogface(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); + } } else if(strType=="MCalsObject") { @@ -184,14 +188,9 @@ void PreQTableWidget::dropEvent(QDropEvent *event) } else if(strType=="TubingstringObject") { - //删除表格 -// emit CallManage::getInstance()->sig_delTableLine(m_strUuid, strWellName, strTrackName, strLineName); - //套管组件 emit CallManage::getInstance()->sig_AddTubingstring(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); } - // - //m_listLineName.push_back(strLineName); // 接受拖拽事件 event->setDropAction(Qt::MoveAction); @@ -338,12 +337,124 @@ void PreQTableWidget::performDrag() FormInfo *formInfo = (FormInfo*)myWidget;//获得widget QString strType = formInfo->m_strType; + + //属性信息 + QString strListPropertyText = ""; + if(strType=="curveObject") + { + //曲线 + + } + else if(strType=="waveObject") + { + //波列 + + } + else if(strType=="tableObject") + { + //表格曲线 + + } + else if(strType=="depthObject") + { + //深度 + + } + else if(strType=="ganzhuangtuObject") + { + //杆状图 + + } + else if(strType=="JyktObject") + { + //井眼垮塌矢量图 + + } + else if(strType=="DenvObject") + { + //井斜方位图 + + } + else if(strType=="DrawImageObject") + { + //图像 成图 + + } + else if(strType=="SantuyibiaoObject") + { + //斜井三图一表 + + } + else if(strType=="CrackObject") + { + //裂缝 + + } + else if(strType=="JiegutextObject") + { + //气测/FMT/射孔/文本 + + } + else if(strType=="LogfaceObject") + { + //沉积相 + QStringList listOtherProperty; + listOtherProperty.append(formInfo->m_strAliasName);//别名 + listOtherProperty.append(formInfo->m_lineColor.name());//名称颜色 + listOtherProperty.append(formInfo->m_curveNameFont.toString());//名称字体 + + //沉积相 + if(formInfo->m_bDrawFac) + { + listOtherProperty.append("DrawFac"); + } + else{ + listOtherProperty.append("0"); + } + // + if(formInfo->m_bDrawPhase) + { + listOtherProperty.append("DrawPhase"); + } + else{ + listOtherProperty.append("0"); + } + // + if(formInfo->m_bDrawMFacName) + { + listOtherProperty.append("DrawMFacName"); + } + else{ + listOtherProperty.append("0"); + } + strListPropertyText = listOtherProperty.join(", "); // 合并成一个字符串,元素之间用逗号加空格分隔 + } + else if(strType=="MCalsObject") + { + //多臂井径 + + } + else if(strType=="TubingstringObject") + { + //套管组件 + + } + + //if(strType == "curveObject" || strType == "waveObject") { //曲线对象(AC、BS...) QMimeData *mimeData = new QMimeData; // 这里需要根据你的item数据来设置mimeData,例如: - mimeData->setText(formInfo->m_strSlfName + "#@@#"+ formInfo->m_strWellName + "#@@#" +formInfo->m_strLineName + "#@@#" + strType); + if(strListPropertyText == "") + { + + mimeData->setText(formInfo->m_strSlfName + "#@@#"+ formInfo->m_strWellName + "#@@#" +formInfo->m_strLineName + "#@@#" + strType); + } + else + { + mimeData->setText(formInfo->m_strSlfName + "#@@#"+ formInfo->m_strWellName + "#@@#" +formInfo->m_strLineName + "#@@#" + strType + "#@@#" + strListPropertyText); + } // 创建QDrag对象 QDrag *drag = new QDrag(this); drag->setMimeData(mimeData); diff --git a/logPlus/qmycustomplot.cpp b/logPlus/qmycustomplot.cpp index 3a6bc8d..b6a396d 100644 --- a/logPlus/qmycustomplot.cpp +++ b/logPlus/qmycustomplot.cpp @@ -73,6 +73,10 @@ QMyCustomPlot::QMyCustomPlot(QWidget *parent, QString strSlfName, QString strWel yAxis->setTickLabels(false); xAxis2->setTickLabels(false); xAxis2->setTickLabels(false); + xAxis->setVisible(false); + xAxis2->setVisible(false); + yAxis->setVisible(false); + yAxis2->setVisible(false); xAxis->grid()->setVisible(false); yAxis->grid()->setVisible(false); @@ -358,6 +362,10 @@ void QMyCustomPlot::initWave(QString strSlfName, QString strWaveName) widget->yAxis->setTickLabels(false); widget->xAxis2->setTickLabels(false); widget->xAxis2->setTickLabels(false); + widget->xAxis->setVisible(false); + widget->xAxis2->setVisible(false); + widget->yAxis->setVisible(false); + widget->yAxis2->setVisible(false); //对调XY轴,在最前面设置 QCPAxis *yAxis = widget->yAxis; diff --git a/logPlus/qtprojectwidgets.cpp b/logPlus/qtprojectwidgets.cpp index a9a89ff..380c687 100644 --- a/logPlus/qtprojectwidgets.cpp +++ b/logPlus/qtprojectwidgets.cpp @@ -1853,6 +1853,8 @@ void QtProjectWidgets::onImportSingleWellLogData() listFiles.append(file_name); QVector vConvertor=pManager.GetSupportConvertors(listFiles[0], &DepthProgress); // if (vConvertor.empty()) return ; + if (file_name.isEmpty()) + return; if (vConvertor.empty()) { QMessageBox::information(NULL,"无法识别的文件",listFiles[0]); diff --git a/logPlus/transparentdraggableimage.cpp b/logPlus/transparentdraggableimage.cpp index 1985c6e..05f7dfa 100644 --- a/logPlus/transparentdraggableimage.cpp +++ b/logPlus/transparentdraggableimage.cpp @@ -180,8 +180,8 @@ void TransparentDraggableImage::setRange(double left_Low, double right_Hight, bo left = (getLeft()/100) * mPlot->yAxis->range().upper; width = (getWidth()/100) * mPlot->yAxis->range().upper; - double lY1 = mPlot->yAxis->range().lower+left; - double lY2 = width+left; + double lY1 = mPlot->yAxis->range().lower+left-1; + double lY2 = width+left-3; mRect->topLeft->setCoords(left_Low, lY1); mRect->bottomRight->setCoords(right_Hight, lY2); @@ -235,8 +235,8 @@ void TransparentDraggableImage::setRange(double left_Low, double right_Hight,dou left = (leftPercentage/100) * mPlot->yAxis->range().upper; width = (widthPercentage/100) * mPlot->yAxis->range().upper; - double lY1 = mPlot->yAxis->range().lower+left; - double lY2 = width+left; + double lY1 = mPlot->yAxis->range().lower+left-1; + double lY2 = width+left-3; mRect->topLeft->setCoords(left_Low, lY1); mRect->bottomRight->setCoords(right_Hight, lY2); diff --git a/svg/svg.pro.user b/svg/svg.pro.user deleted file mode 100644 index 42e9313..0000000 --- a/svg/svg.pro.user +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - EnvironmentId - {04219d0a-2df9-4f31-921d-c25f7a4fa4e5} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 0 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.13.0 MSVC2017 64bit - Desktop Qt 5.13.0 MSVC2017 64bit - qt.qt5.5130.win64_msvc2017_64_kit - 1 - 0 - 0 - - D:/Qt/Qt5.13.0/5.13.0/Src/qtsvg/src/build-svg-Desktop_Qt_5_13_0_MSVC2017_64bit-Debug - - - true - qmake - - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Make - - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - - ProjectExplorer.BuildSteps.Build - - - - true - Make - - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - true - - - D:/Qt/Qt5.13.0/5.13.0/Src/qtsvg/src/build-svg-Desktop_Qt_5_13_0_MSVC2017_64bit-Release - - - true - qmake - - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Make - - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - - ProjectExplorer.BuildSteps.Build - - - - true - Make - - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - true - - - D:/Qt/Qt5.13.0/5.13.0/Src/qtsvg/src/build-svg-Desktop_Qt_5_13_0_MSVC2017_64bit-Profile - - - true - qmake - - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Make - - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - - ProjectExplorer.BuildSteps.Build - - - - true - Make - - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - true - - 3 - - - 0 - 部署 - - ProjectExplorer.BuildSteps.Deploy - - 1 - Deploy Configuration - - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - - Custom Executable - - ProjectExplorer.CustomExecutableRunConfiguration - - 3768 - false - true - false - false - true - - - - 1 - - - - ProjectExplorer.Project.TargetCount - 1 - - - ProjectExplorer.Project.Updater.FileVersion - 21 - - - Version - 21 - -