This commit is contained in:
crqiqi77 2026-04-10 11:46:37 +08:00
commit 2bfd16df4a
27 changed files with 584 additions and 406 deletions

View File

@ -199,7 +199,10 @@ QVariant PythonHandler::pythonObjectToQVariant(PyObject *obj)
map[key] = pythonObjectToQVariant(pValue); map[key] = pythonObjectToQVariant(pValue);
} }
} }
#ifdef _RELEASE
Py_DECREF(pKeys); Py_DECREF(pKeys);
#endif
return map; return map;
} }
else if (obj == Py_None) { else if (obj == Py_None) {
@ -222,14 +225,17 @@ QString PythonHandler::capturePythonError() {
PyObject* pstr = PyObject_Str(pvalue); PyObject* pstr = PyObject_Str(pvalue);
if (pstr) { if (pstr) {
errorMsg = QString::fromUtf8(PyUnicode_AsUTF8(pstr)); errorMsg = QString::fromUtf8(PyUnicode_AsUTF8(pstr));
#ifdef _RELEASE
Py_DECREF(pstr); Py_DECREF(pstr);
#endif
} }
} }
#ifdef _RELEASE
// 清理 // 清理
Py_XDECREF(ptype); Py_XDECREF(ptype);
Py_XDECREF(pvalue); Py_XDECREF(pvalue);
Py_XDECREF(ptraceback); Py_XDECREF(ptraceback);
#endif
return errorMsg; return errorMsg;
} }
@ -284,8 +290,11 @@ QVariant PythonHandler::executeScript(const QString &scriptPath,
PyErr_Print(); PyErr_Print();
} }
emit addLog("无法找到函数:" + functionName); emit addLog("无法找到函数:" + functionName);
#ifdef _RELEASE
Py_XDECREF(pFunc); Py_XDECREF(pFunc);
Py_DECREF(pModule); Py_DECREF(pModule);
#endif
return QVariant(); return QVariant();
} }
@ -427,7 +436,10 @@ QVariant PythonHandler::executeCode(const QString &code)
if (pResult) { if (pResult) {
QVariant result = pythonObjectToQVariant(pResult); QVariant result = pythonObjectToQVariant(pResult);
#ifdef _RELEASE
Py_DECREF(pResult); Py_DECREF(pResult);
#endif
return result; return result;
} else { } else {
PyErr_Print(); PyErr_Print();

16
common/common.h Normal file
View File

@ -0,0 +1,16 @@
#ifndef LOG_COMMON_H
#define LOG_COMMON_H
#include <QObject>
// 定义一个枚举,方便位操作(可选)
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

View File

@ -0,0 +1,64 @@
#pragma once
#include <QPainter>
#include <QTableWidgetItem>
#include <QStyledItemDelegate>
#include "common.h"
#pragma execution_character_set("utf-8")
// 设置某个单元格的边框状态
void setItemBorderFlags(QTableWidgetItem *item, BorderFlags flags) {
item->setData(Qt::UserRole, static_cast<int>(flags));
}
// 获取边框状态
BorderFlags getItemBorderFlags(const QTableWidgetItem *item) {
return static_cast<BorderFlags>(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<QTableWidget*>(const_cast<QWidget*>(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();
}
};

View File

@ -176,7 +176,7 @@ void TransparentDraggableGujing::setRange(double left_Low, double right_Hight, b
if(left_Low >= right_Hight) return; if(left_Low >= right_Hight) return;
double lY1 = mPlot->yAxis->range().lower;//+10 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->topLeft->setCoords(left_Low, lY1);
mRect->bottomRight->setCoords(right_Hight, lY2); mRect->bottomRight->setCoords(right_Hight, lY2);

View File

@ -167,8 +167,8 @@ void TransparentDraggableResult::setRange(double left_Low, double right_Hight, b
{ {
if(left_Low >= right_Hight) return; if(left_Low >= right_Hight) return;
double lY1 = m_nShowPos*g_dPixelPerCm+mPlot->yAxis->range().lower;//+10 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); 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->topLeft->setCoords(left_Low, lY1);
mRect->bottomRight->setCoords(right_Hight, mPlot->yAxis->range().upper); mRect->bottomRight->setCoords(right_Hight, mPlot->yAxis->range().upper);

View File

@ -2710,15 +2710,39 @@ void FormDraw::crossTrackSetting()
} }
void FormDraw::setBorderFlags(BorderFlags flags)
{
m_BorderFlags = flags;
}
void FormDraw::paintEvent(QPaintEvent*) void FormDraw::paintEvent(QPaintEvent*)
{ {
//if (m_listLineName.size() > 0 && m_listLineName.at(0) == "AC") QPainter painter(this);
//{ QRect rect = this->rect();
// QPainter painter(this); rect.setLeft(rect.left() + 1);
// QRect rect = this->rect(); rect.setTop(rect.top() + 1);
// //背景透明 // 3. 准备绘制边框
// painter.fillRect(rect.left(), rect.top(), rect.width(), rect.height(), QColor(200, 0, 0)); //QColor(67, 67, 67, 100) 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 else
{ {
//此处追加参照了下方setDrawData函数的处理
//不然没有设置setRange初始范围不支持新的右侧滚动条的setRange
curv->m_bX2Y = false;
curv->initWave(strSlfName, strWaveName); curv->initWave(strSlfName, strWaveName);
_nSamples = curv->getScaleV(); _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()); int index=logio->OpenCurve(form->m_strLineName.toStdString().c_str());
if(index<0) { if(index<0) {
delete logio; delete logio;
return; continue;
//return;
} }
logio->ReadCurve(index, dep, 1, &fValue); logio->ReadCurve(index, dep, 1, &fValue);
logio->CloseCurve(index); logio->CloseCurve(index);
@ -3710,6 +3739,10 @@ void FormDraw::s_addGanZuangTu(QString strUuid, QString strSlfName, QString strW
curv->yAxis->setTicks(false); curv->yAxis->setTicks(false);
curv->xAxis2->setTicks(false); curv->xAxis2->setTicks(false);
curv->yAxis2->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; // curv->mKedou = true;
//隐藏网格 //隐藏网格
@ -4173,6 +4206,10 @@ void FormDraw::s_addJiegutext(QString strUuid, QString strSlfName, QString strWe
curv->yAxis->setTicks(false); curv->yAxis->setTicks(false);
curv->xAxis2->setTicks(false); curv->xAxis2->setTicks(false);
curv->yAxis2->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); QColor newlineColor=QColor(0,0,0);
QString strAliasName = "气测-FMT-射孔-文本"; QString strAliasName = "气测-FMT-射孔-文本";
@ -4571,6 +4608,10 @@ void FormDraw::s_addTubingstring(QString strUuid, QString strSlfName, QString st
curv->yAxis->setTicks(false); curv->yAxis->setTicks(false);
curv->xAxis2->setTicks(false); curv->xAxis2->setTicks(false);
curv->yAxis2->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"; //QString strWaveName = "TUBTOOLS";
@ -4774,6 +4815,11 @@ void FormDraw::initForm(QMyCustomPlot *widget, QString strSlfName, QString strLi
widget->xAxis->ticker()->setTickCount(10);//x个主刻度 widget->xAxis->ticker()->setTickCount(10);//x个主刻度
widget->yAxis->ticker()->setTickCount(60);//y个主刻度 widget->yAxis->ticker()->setTickCount(60);//y个主刻度
widget->xAxis->setVisible(false);
widget->xAxis2->setVisible(false);
widget->yAxis->setVisible(false);
widget->yAxis2->setVisible(false);
//对调XY轴在最前面设置 //对调XY轴在最前面设置
QCPAxis *yAxis = widget->yAxis; QCPAxis *yAxis = widget->yAxis;
QCPAxis *xAxis = widget->xAxis; QCPAxis *xAxis = widget->xAxis;
@ -5442,6 +5488,10 @@ void FormDraw::initTableLine(QMyCustomPlot *widget, QString strSlfName, QString
widget->yAxis->setTicks(false); widget->yAxis->setTicks(false);
widget->xAxis2->setTicks(false); widget->xAxis2->setTicks(false);
widget->yAxis2->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) if (m_bTableData)
{ {
@ -5493,6 +5543,10 @@ void FormDraw::initWords(QMyCustomPlot *widget, QString strSlfName, QString strL
widget->yAxis->setTicks(false); widget->yAxis->setTicks(false);
widget->xAxis2->setTicks(false); widget->xAxis2->setTicks(false);
widget->yAxis2->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); widget->LoadFromSLF_Text(strSlfName, strLineName);
@ -5539,6 +5593,10 @@ void FormDraw::initLayer(QMyCustomPlot *widget, QString strSlfName, QString strL
widget->yAxis->setTicks(false); widget->yAxis->setTicks(false);
widget->xAxis2->setTicks(false); widget->xAxis2->setTicks(false);
widget->yAxis2->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); widget->LoadFromSLF_Layer(strSlfName, strLineName);
@ -5588,6 +5646,10 @@ void FormDraw::initIMAGE_DATA(QMyCustomPlot *widget, QString strSlfName, QString
widget->yAxis->setTicks(false); widget->yAxis->setTicks(false);
widget->xAxis2->setTicks(false); widget->xAxis2->setTicks(false);
widget->yAxis2->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); widget->LoadFromIMAGE_SLF(strSlfName, strLineName);
//显示文本 //显示文本
@ -5699,6 +5761,10 @@ void FormDraw::initResult(QMyCustomPlot *widget, QString strSlfName, QString str
widget->yAxis->setTickLabels(false); widget->yAxis->setTickLabels(false);
widget->xAxis2->setTickLabels(false); widget->xAxis2->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); LoadFromSLF_Result(widget, strSlfName, strLineName);
@ -5793,6 +5859,10 @@ void FormDraw::initGeoLith(QMyCustomPlot *widget, QString strSlfName, QString st
widget->yAxis->setTicks(false); widget->yAxis->setTicks(false);
widget->xAxis2->setTicks(false); widget->xAxis2->setTicks(false);
widget->yAxis2->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) if(listOtherProperty.size()>=12)
@ -5903,6 +5973,10 @@ void FormDraw::initSwallCore(QMyCustomPlot *widget, QString strSlfName, QString
widget->yAxis->setTicks(false); widget->yAxis->setTicks(false);
widget->xAxis2->setTicks(false); widget->xAxis2->setTicks(false);
widget->yAxis2->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); widget->LoadFromSLF_SwallCore(strSlfName, strLineName);
@ -5950,6 +6024,10 @@ void FormDraw::initGujing(QMyCustomPlot *widget, QString strSlfName, QString str
widget->yAxis->setTicks(false); widget->yAxis->setTicks(false);
widget->xAxis2->setTicks(false); widget->xAxis2->setTicks(false);
widget->yAxis2->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); widget->LoadFromSLF_Gujing(strSlfName, strLineName);
@ -5969,7 +6047,8 @@ void FormDraw::initDepth(QMyCustomPlot *curv)
{ {
// x轴隐藏 // x轴隐藏
curv->yAxis->setTicks(true); curv->yAxis->setTicks(true);
curv->yAxis2->setVisible(false); curv->yAxis->setVisible(true);
curv->yAxis->setBasePen(Qt::NoPen);
//curv->yAxis->setTickLabels(true); //curv->yAxis->setTickLabels(true);
curv->yAxis->setTickLabelSide(QCPAxis::lsInside); curv->yAxis->setTickLabelSide(QCPAxis::lsInside);
@ -6826,6 +6905,10 @@ void FormDraw::initCorePhysics(QMyCustomPlot *widget, QString strSlfName, QStrin
widget->yAxis->setTicks(false); widget->yAxis->setTicks(false);
widget->xAxis2->setTicks(false); widget->xAxis2->setTicks(false);
widget->yAxis2->setTicks(false); widget->yAxis2->setTicks(false);
widget->xAxis->setVisible(false);
widget->xAxis2->setVisible(false);
widget->yAxis->setVisible(false);
widget->yAxis2->setVisible(false);
QVector<double> x, y; QVector<double> x, y;
@ -7072,6 +7155,10 @@ void FormDraw::DrawJykt(QMyCustomPlot *widget, QString strSlfName)
widget->yAxis->setTicks(false); widget->yAxis->setTicks(false);
widget->xAxis2->setTicks(false); widget->xAxis2->setTicks(false);
widget->yAxis2->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; float tempf,flVal;
@ -7198,6 +7285,10 @@ void FormDraw::DrawDenv(QMyCustomPlot *widget, QString strSlfName)
widget->yAxis->setTicks(false); widget->yAxis->setTicks(false);
widget->xAxis2->setTicks(false); widget->xAxis2->setTicks(false);
widget->yAxis2->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); QPen pPen(m_TailColor,m_nTailWidth);

View File

@ -10,6 +10,7 @@
#include "LogIO.h" #include "LogIO.h"
#include "MemRdWt.h" #include "MemRdWt.h"
#include "FormLine.h" #include "FormLine.h"
#include "common.h"
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
@ -86,6 +87,8 @@ public:
// 跨道设置 // 跨道设置
void crossTrackSetting(); void crossTrackSetting();
void setBorderFlags(BorderFlags flags);
private: private:
Ui::FormDraw *ui; Ui::FormDraw *ui;
@ -126,6 +129,8 @@ public:
QStringList m_listWaveName; QStringList m_listWaveName;
QStringList m_listTableName; QStringList m_listTableName;
BorderFlags m_BorderFlags;
//X坐标 //X坐标
float m_vmax; float m_vmax;
float m_vmin; float m_vmin;

View File

@ -770,7 +770,7 @@ void FormInfo::paintEvent(QPaintEvent* event)
QRect rectRound(rect.left()+2,rect.top()+4, rect.width()-4, rect.height()-8); QRect rectRound(rect.left()+2,rect.top()+4, rect.width()-4, rect.height()-8);
painter.setPen(QPen(m_lineColor, m_dWidth, m_lineStyle)); painter.setPen(QPen(m_lineColor, m_dWidth, m_lineStyle));
//painter.drawRoundRect(rectRound);//利用画刷(颜色/岩性图片),画框 //painter.drawRoundRect(rectRound);//利用画刷(颜色/岩性图片),画框
painter.drawRect(rectRound); //painter.drawRect(rectRound);
QString strShowTxt = ""; QString strShowTxt = "";
painter.setBrush(Qt::NoBrush); // 确保文字不被填充色遮挡 painter.setBrush(Qt::NoBrush); // 确保文字不被填充色遮挡
@ -1765,6 +1765,13 @@ void FormInfo::contextMenuEvent(QContextMenuEvent *event)
menu.addAction(QIcon(::GetImagePath() + "icon/Delete.png"), "删除当前对象", this, &FormInfo::onDeleteTable); menu.addAction(QIcon(::GetImagePath() + "icon/Delete.png"), "删除当前对象", this, &FormInfo::onDeleteTable);
menu.exec(event->globalPos()); 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") else if(m_strType=="JiegutextObject")
{ {
//气测/FMT/射孔/文本 //气测/FMT/射孔/文本
@ -1820,3 +1827,15 @@ void FormInfo::onDeleteTable()
//删除表格 //删除表格
emit CallManage::getInstance()->sig_delTableLine(m_strUuid, m_strWellName, m_strTrackName, m_strLineName); 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);
}

View File

@ -382,6 +382,12 @@ public slots:
//删除表格 //删除表格
void onDeleteTable(); void onDeleteTable();
//波列查看
void onShowWave();
//删除波列
void onDeleteWave();
}; };

View File

@ -54,15 +54,16 @@ FormTrack::FormTrack(QWidget *parent, QString strWellName, QString strTrackName)
this, SLOT(s_delLine(QString, QString, QString, QString))); this, SLOT(s_delLine(QString, QString, QString, QString)));
//表格 //表格
connect(this, SIGNAL(sig_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_addWave(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString))); 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)), connect(CallManage::getInstance(), SIGNAL(sig_delTableLine(QString, QString, QString, QString)),
this, SLOT(s_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)), connect(this, SIGNAL(sig_AddWave(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString)),
this, SLOT(s_AddTableLine(QString, QString, QString, QString, QString, QString, QColor, double, float, float, QString, QStringList))); 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)), 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))); 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; 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) // 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; i<rowCount; i++)
{
if( ui->tableWidget->cellWidget(i, 0) != nullptr )
{
auto myWidget = ui->tableWidget->cellWidget(i, 0);
FormInfo *formInfo = qobject_cast<FormInfo*>(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) 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" if(strLineName == "FRAC_HOLE.TABLE" || strLineName == "WORDS_RELUST" || strLineName == "RESULT"

View File

@ -4,6 +4,7 @@
#include <QWidget> #include <QWidget>
#include "forminfo.h" #include "forminfo.h"
#include <QStyledItemDelegate> #include <QStyledItemDelegate>
#include "common.h"
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
@ -56,9 +57,14 @@ public:
FormInfo* getFormInfoByParameters(QString strUuid, QString strWellName, FormInfo* getFormInfoByParameters(QString strUuid, QString strWellName,
QString strTrackName, QString strLineName); QString strTrackName, QString strLineName);
void setBorderFlags(BorderFlags flags);
private: private:
Ui::FormTrack *ui; Ui::FormTrack *ui;
protected:
void paintEvent(QPaintEvent *event);
public: public:
QString m_strUuid; QString m_strUuid;
// 道ID // 道ID
@ -69,7 +75,7 @@ public:
FormInfo *m_formInfo = NULL; FormInfo *m_formInfo = NULL;
// 创建自定义单元格委托 // 创建自定义单元格委托
//NoLRBorderDelegate *m_delegate; //NoLRBorderDelegate *m_delegate;
BorderFlags m_BorderFlags;
public: 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={}); 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_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_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_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); void s_delTableLine(QString strUuid, QString strWellName, QString strTrackName, QString strLineName);

View File

@ -15,16 +15,16 @@
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<property name="leftMargin"> <property name="leftMargin">
<number>0</number> <number>2</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>0</number> <number>2</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>0</number> <number>2</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>2</number>
</property> </property>
<item row="0" column="0"> <item row="0" column="0">
<widget class="PreQTableWidget" name="tableWidget"/> <widget class="PreQTableWidget" name="tableWidget"/>

View File

@ -30,6 +30,11 @@ FormTrackTop::~FormTrackTop()
delete ui; delete ui;
} }
void FormTrackTop::setBorderFlags(BorderFlags flags)
{
m_BorderFlags = flags;
}
void FormTrackTop::setTrackTopPropert(QJsonObject topObj) void FormTrackTop::setTrackTopPropert(QJsonObject topObj)
{ {
if (topObj.contains("Font")) if (topObj.contains("Font"))
@ -60,6 +65,8 @@ QJsonObject FormTrackTop::makeJson()
void FormTrackTop::paintEvent(QPaintEvent* event) void FormTrackTop::paintEvent(QPaintEvent* event)
{ {
QWidget::paintEvent(event);
QPainter painter(this); QPainter painter(this);
QRect rect = this->rect(); QRect rect = this->rect();
//背景透明 //背景透明
@ -70,7 +77,33 @@ void FormTrackTop::paintEvent(QPaintEvent* event)
painter.setPen(m_fontColor); // fontColor QColor(220, 220, 220) painter.setPen(m_fontColor); // fontColor QColor(220, 220, 220)
painter.drawText(rect.left(), rect.top(), rect.width(), rect.height(), Qt::AlignCenter, m_strTrackName); 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) void FormTrackTop::dragEnterEvent(QDragEnterEvent* event)

View File

@ -8,6 +8,7 @@
#include <QJsonDocument> #include <QJsonDocument>
#include <QJsonObject> #include <QJsonObject>
#include <QJsonArray> #include <QJsonArray>
#include "common.h"
#pragma execution_character_set("utf-8") #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)); explicit FormTrackTop(QWidget *parent = nullptr, QString strSlfName="", QString strWellName="", QString strTrackName="", QString strLineName="", QColor lineColor=QColor(255,0,0));
~FormTrackTop(); ~FormTrackTop();
void setBorderFlags(BorderFlags flags);
void setTrackTopPropert(QJsonObject topObj); void setTrackTopPropert(QJsonObject topObj);
private: private:
Ui::FormTrackTop *ui; Ui::FormTrackTop *ui;
@ -50,6 +53,7 @@ public:
QFont m_font; QFont m_font;
QColor m_fontColor;//颜色 QColor m_fontColor;//颜色
BorderFlags m_BorderFlags;
public: public:

View File

@ -23,17 +23,15 @@ FormWell::FormWell(QWidget *parent, QString strWellName) :
// //
ui->tableWidget->verticalHeader()->hide(); //行 ui->tableWidget->verticalHeader()->hide(); //行
//ui->tableWidget->horizontalHeader()->hide();//列 ui->tableWidget->horizontalHeader()->hide();//列
int rowcount = 3; //总行数 int rowcount = 3; //总行数
ui->tableWidget->setRowCount(rowcount); //动态设置行数 ui->tableWidget->setRowCount(rowcount); //动态设置行数
//ui->tableWidget->verticalHeader()->setFixedWidth(3);//标题栏宽度 //ui->tableWidget->verticalHeader()->setFixedWidth(3);//标题栏宽度
ui->tableWidget->horizontalHeader()->setFixedHeight(3); ui->tableWidget->horizontalHeader()->setFixedHeight(3);
//左右边框隐藏
ui->tableWidget->setStyleSheet("QTableView::item {border-left: 0px solid black;} \ ui->tableWidget->setShowGrid(false);
QTableView::item:selected {border-left: 0px solid black; color:#57595B; background:#E4E4E4;}\ ui->tableWidget->setStyleSheet("QTableView {border: 0px solid black;} QTableView::item {border: 0px solid black;} \
QTableView::item {border-right: 0px solid black;} \ QTableView::item:selected {color:#57595B; background:#E4E4E4;}");
QTableView::item:selected {border-right: 0px solid black;}");
//"QTableView::item:selected {color:#57595B; background:#E4E4E4;}"
// 假设你的类中有一个槽函数onTableRowsInserted(QModelIndex parent, int first, int last) // 假设你的类中有一个槽函数onTableRowsInserted(QModelIndex parent, int first, int last)
//connect(ui->tableWidget->model(), &QAbstractItemModel::columnsInserted, //connect(ui->tableWidget->model(), &QAbstractItemModel::columnsInserted,
@ -189,6 +187,7 @@ QVector<QWidget *> FormWell::new_track(QStringList listdt, QString strTrackName)
ui->tableWidget->setRowHeight(i, 100); ui->tableWidget->setRowHeight(i, 100);
// //
FormTrackTop* trackTop= new FormTrackTop(this, strSlfName, strWellName, strTrackName); FormTrackTop* trackTop= new FormTrackTop(this, strSlfName, strWellName, strTrackName);
trackTop->setBorderFlags(BorderFlags(BottomBorder | RightBorder));
// if ("curveObject" == strType) // if ("curveObject" == strType)
// trackTop->setFixedWidth(nW/2); // trackTop->setFixedWidth(nW/2);
vec << trackTop; vec << trackTop;
@ -203,6 +202,7 @@ QVector<QWidget *> FormWell::new_track(QStringList listdt, QString strTrackName)
//曲线名称栏 //曲线名称栏
formTrack = new FormTrack(this, strWellName, strTrackName); formTrack = new FormTrack(this, strWellName, strTrackName);
formTrack->setBorderFlags(BorderFlags(BottomBorder | RightBorder));
// if ("curveObject" == strType) // if ("curveObject" == strType)
// formTrack->setFixedWidth(nW / 2); // formTrack->setFixedWidth(nW / 2);
vec << formTrack; vec << formTrack;
@ -228,6 +228,7 @@ QVector<QWidget *> FormWell::new_track(QStringList listdt, QString strTrackName)
ui->tableWidget->setRowHeight(i, (int)dHight);//7582 ui->tableWidget->setRowHeight(i, (int)dHight);//7582
//曲线绘制栏 //曲线绘制栏
FormDraw *formDraw = new FormDraw(this, strWellName, strTrackName); FormDraw *formDraw = new FormDraw(this, strWellName, strTrackName);
formDraw->setBorderFlags(BorderFlags(BottomBorder | RightBorder));
vec << formDraw; vec << formDraw;
formDraw->m_iY1 = m_iY1; formDraw->m_iY1 = m_iY1;
formDraw->m_iY2 = m_iY2; formDraw->m_iY2 = m_iY2;
@ -244,6 +245,11 @@ QVector<QWidget *> FormWell::new_track(QStringList listdt, QString strTrackName)
return vec; return vec;
} }
void FormWell::setBorderFlags(BorderFlags flags)
{
m_BorderFlags = flags;
}
int FormWell::getTableWidgetColumn(QString strTrackUuid) int FormWell::getTableWidgetColumn(QString strTrackUuid)
{ {
int nret = -1; int nret = -1;
@ -260,6 +266,36 @@ int FormWell::getTableWidgetColumn(QString strTrackUuid)
return nret; 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) void FormWell::s_Raise(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iTableType, QString strFormInfoType)
{ {
if(m_strUuid == strUuid && if(m_strUuid == strUuid &&

View File

@ -5,6 +5,7 @@
#include "formtrack.h" #include "formtrack.h"
#include "formdraw.h" #include "formdraw.h"
#include "formtracktop.h" #include "formtracktop.h"
#include "common.h"
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
@ -25,9 +26,12 @@ public:
QVector<QWidget*> new_track(QStringList listdt, QString strTrackName = ""); QVector<QWidget*> new_track(QStringList listdt, QString strTrackName = "");
void setBorderFlags(BorderFlags flags);
// 根据道ID获取列索引 // 根据道ID获取列索引
int getTableWidgetColumn(QString strTrackUuid); int getTableWidgetColumn(QString strTrackUuid);
protected:
void paintEvent(QPaintEvent *event);
private: private:
Ui::FormWell *ui; Ui::FormWell *ui;
@ -43,6 +47,8 @@ public:
// 道图形 // 道图形
QMap<QString, QVector<QWidget*>> m_mapFormDraw; QMap<QString, QVector<QWidget*>> m_mapFormDraw;
BorderFlags m_BorderFlags;
public: public:
QJsonObject makeJson(); QJsonObject makeJson();
QStringList getLineList(QString strWellName, QString strTrackName); QStringList getLineList(QString strWellName, QString strTrackName);

View File

@ -15,16 +15,16 @@
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<property name="leftMargin"> <property name="leftMargin">
<number>0</number> <number>2</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>0</number> <number>2</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>0</number> <number>2</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>2</number>
</property> </property>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QMyTableWidget" name="tableWidget"/> <widget class="QMyTableWidget" name="tableWidget"/>

View File

@ -20,6 +20,7 @@
<QtMoc Include="transparentdraggableSelectRect.h" /> <QtMoc Include="transparentdraggableSelectRect.h" />
<QtMoc Include="..\CallManage\CallManage.h" /> <QtMoc Include="..\CallManage\CallManage.h" />
<QtMoc Include="..\common\dropdownbutton.h" /> <QtMoc Include="..\common\dropdownbutton.h" />
<ClInclude Include="..\common\common.h" />
<ClInclude Include="..\common\geometryutils.h" /> <ClInclude Include="..\common\geometryutils.h" />
<ClInclude Include="3rd_qcustomplot\smoothcurve.h" /> <ClInclude Include="3rd_qcustomplot\smoothcurve.h" />
<QtMoc Include="3rd_qcustomplot\v2_1\qcustomplot.h" /> <QtMoc Include="3rd_qcustomplot\v2_1\qcustomplot.h" />
@ -35,6 +36,7 @@
<ClInclude Include="GeoIndicatorGenerator.h" /> <ClInclude Include="GeoIndicatorGenerator.h" />
<ClInclude Include="Gradient.h" /> <ClInclude Include="Gradient.h" />
<QtMoc Include="mainwindowsplitter.h" /> <QtMoc Include="mainwindowsplitter.h" />
<ClInclude Include="ItemBorderDelegate.h" />
<ClInclude Include="ObjectArchive.h" /> <ClInclude Include="ObjectArchive.h" />
<QtMoc Include="ViewInfo.h" /> <QtMoc Include="ViewInfo.h" />
<QtMoc Include="variantmanager.h" /> <QtMoc Include="variantmanager.h" />

View File

@ -68,6 +68,12 @@
<ClInclude Include="..\common\geometryutils.h"> <ClInclude Include="..\common\geometryutils.h">
<Filter>common</Filter> <Filter>common</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="ItemBorderDelegate.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\common\common.h">
<Filter>common</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<QtMoc Include="ConsoleOutputWidget.h"> <QtMoc Include="ConsoleOutputWidget.h">

View File

@ -407,13 +407,6 @@ void MainWindow::s_New()
void MainWindow::s_Open() void MainWindow::s_Open()
{ {
//关闭老项目
bool bClosed = closeProject();
if(!bClosed)
{
return;
}
//打开 //打开
QString fileFull = ""; QString fileFull = "";
fileFull = QFileDialog::getOpenFileName(this, fileFull = QFileDialog::getOpenFileName(this,
@ -422,6 +415,13 @@ void MainWindow::s_Open()
tr("项目文件(*.wwl)")); tr("项目文件(*.wwl)"));
if (!fileFull.isEmpty()) if (!fileFull.isEmpty())
{ {
//关闭老项目
bool bClosed = closeProject();
if(!bClosed)
{
return;
}
emit CallManage::getInstance()->sig_OpenProject(fileFull); emit CallManage::getInstance()->sig_OpenProject(fileFull);
} }
} }

View File

@ -17,6 +17,7 @@
#include "selectwelldialog.h" #include "selectwelldialog.h"
#include "mainwindow.h" #include "mainwindow.h"
#include <QSvgGenerator> #include <QSvgGenerator>
#include "ItemBorderDelegate.h"
//主窗口为了方便获取tab当前页 //主窗口为了方便获取tab当前页
extern MainWindow *g_mainWindow; extern MainWindow *g_mainWindow;
@ -66,18 +67,19 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) :
ui->toolBar_3->hide(); ui->toolBar_3->hide();
ui->toolBar_plugin->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->setFrameShape(QFrame::NoFrame); //设置无边框
//隐藏网格线 //隐藏网格线
ui->tableWidget_2->setShowGrid(false); ui->tableWidget_2->setShowGrid(false);
//设置样式表,只显示竖直边框 ui->tableWidget_2->setItemDelegate(new ItemBorderDelegate(ui->tableWidget_2));
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->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->verticalHeader()->hide(); //行
//ui->tableWidget_2->horizontalHeader()->hide();//列 //ui->tableWidget_2->horizontalHeader()->hide();//列
@ -2904,6 +2906,7 @@ void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName)
ui->tableWidget_2->setRowHeight(i, 100); ui->tableWidget_2->setRowHeight(i, 100);
// //
QTableWidgetItem* item = new QTableWidgetItem(strWellName); QTableWidgetItem* item = new QTableWidgetItem(strWellName);
setItemBorderFlags(item, BorderFlags(TopBorder | BottomBorder | LeftBorder | RightBorder));
item->setData(Qt::UserRole + 1, strSlfName); item->setData(Qt::UserRole + 1, strSlfName);
item->setFlags(item->flags() & (~Qt::ItemIsEditable)); item->setFlags(item->flags() & (~Qt::ItemIsEditable));
item->setTextAlignment(Qt::AlignCenter); //设置文本居中 item->setTextAlignment(Qt::AlignCenter); //设置文本居中
@ -2928,6 +2931,7 @@ void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName)
ui->tableWidget_2->setRowHeight(i, (int)dHight);//8020 ui->tableWidget_2->setRowHeight(i, (int)dHight);//8020
// //
FormWell *widgetWell = new FormWell(this, strWellName); FormWell *widgetWell = new FormWell(this, strWellName);
widgetWell->setBorderFlags(BorderFlags(BottomBorder | LeftBorder | RightBorder));
widgetWell->m_iY1 = m_iY1; widgetWell->m_iY1 = m_iY1;
widgetWell->m_iY2 = m_iY2; widgetWell->m_iY2 = m_iY2;
widgetWell->m_strUuid = m_strUuid; widgetWell->m_strUuid = m_strUuid;

View File

@ -15,14 +15,26 @@
</property> </property>
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin"> <property name="rightMargin">
<number>3</number> <number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property> </property>
<item row="1" column="1"> <item row="1" column="1">
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<widget class="QTableWidget" name="tableWidget_2"/> <widget class="QTableWidget" name="tableWidget_2"/>
</item> </item>
<item>
<widget class="QWidget" name="widget" native="true"/>
</item>
</layout> </layout>
</item> </item>
</layout> </layout>

View File

@ -163,19 +163,23 @@ void PreQTableWidget::dropEvent(QDropEvent *event)
} }
else if(strType=="JiegutextObject") else if(strType=="JiegutextObject")
{ {
//删除表格
// emit CallManage::getInstance()->sig_delTableLine(m_strUuid, strWellName, strTrackName, strLineName);
//气测/FMT/射孔/文本 //气测/FMT/射孔/文本
emit CallManage::getInstance()->sig_AddJiegutext(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); emit CallManage::getInstance()->sig_AddJiegutext(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
} }
else if(strType=="LogfaceObject") else if(strType=="LogfaceObject")
{ {
//删除表格 if (list.size() > 4)
// emit CallManage::getInstance()->sig_delTableLine(m_strUuid, strWellName, strTrackName, strLineName); {
QString strListPropertyText = list[4];
//沉积相 QStringList listOtherProperty = strListPropertyText.split(", "); // 以逗号加空格为分隔符分割字符串
emit CallManage::getInstance()->sig_AddLogface(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName); //沉积相
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") else if(strType=="MCalsObject")
{ {
@ -184,14 +188,9 @@ void PreQTableWidget::dropEvent(QDropEvent *event)
} }
else if(strType=="TubingstringObject") 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); emit CallManage::getInstance()->sig_AddTubingstring(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName);
} }
//
//m_listLineName.push_back(strLineName);
// 接受拖拽事件 // 接受拖拽事件
event->setDropAction(Qt::MoveAction); event->setDropAction(Qt::MoveAction);
@ -338,12 +337,124 @@ void PreQTableWidget::performDrag()
FormInfo *formInfo = (FormInfo*)myWidget;//获得widget FormInfo *formInfo = (FormInfo*)myWidget;//获得widget
QString strType = formInfo->m_strType; 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") //if(strType == "curveObject" || strType == "waveObject")
{ {
//曲线对象(AC、BS...) //曲线对象(AC、BS...)
QMimeData *mimeData = new QMimeData; QMimeData *mimeData = new QMimeData;
// 这里需要根据你的item数据来设置mimeData例如 // 这里需要根据你的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对象
QDrag *drag = new QDrag(this); QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData); drag->setMimeData(mimeData);

View File

@ -73,6 +73,10 @@ QMyCustomPlot::QMyCustomPlot(QWidget *parent, QString strSlfName, QString strWel
yAxis->setTickLabels(false); yAxis->setTickLabels(false);
xAxis2->setTickLabels(false); xAxis2->setTickLabels(false);
xAxis2->setTickLabels(false); xAxis2->setTickLabels(false);
xAxis->setVisible(false);
xAxis2->setVisible(false);
yAxis->setVisible(false);
yAxis2->setVisible(false);
xAxis->grid()->setVisible(false); xAxis->grid()->setVisible(false);
yAxis->grid()->setVisible(false); yAxis->grid()->setVisible(false);
@ -358,6 +362,10 @@ void QMyCustomPlot::initWave(QString strSlfName, QString strWaveName)
widget->yAxis->setTickLabels(false); widget->yAxis->setTickLabels(false);
widget->xAxis2->setTickLabels(false); widget->xAxis2->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轴在最前面设置 //对调XY轴在最前面设置
QCPAxis *yAxis = widget->yAxis; QCPAxis *yAxis = widget->yAxis;

View File

@ -1853,6 +1853,8 @@ void QtProjectWidgets::onImportSingleWellLogData()
listFiles.append(file_name); listFiles.append(file_name);
QVector<IConvertor*> vConvertor=pManager.GetSupportConvertors(listFiles[0], &DepthProgress); QVector<IConvertor*> vConvertor=pManager.GetSupportConvertors(listFiles[0], &DepthProgress);
// if (vConvertor.empty()) return ; // if (vConvertor.empty()) return ;
if (file_name.isEmpty())
return;
if (vConvertor.empty()) if (vConvertor.empty())
{ {
QMessageBox::information(NULL,"无法识别的文件",listFiles[0]); QMessageBox::information(NULL,"无法识别的文件",listFiles[0]);

View File

@ -180,8 +180,8 @@ void TransparentDraggableImage::setRange(double left_Low, double right_Hight, bo
left = (getLeft()/100) * mPlot->yAxis->range().upper; left = (getLeft()/100) * mPlot->yAxis->range().upper;
width = (getWidth()/100) * mPlot->yAxis->range().upper; width = (getWidth()/100) * mPlot->yAxis->range().upper;
double lY1 = mPlot->yAxis->range().lower+left; double lY1 = mPlot->yAxis->range().lower+left-1;
double lY2 = width+left; double lY2 = width+left-3;
mRect->topLeft->setCoords(left_Low, lY1); mRect->topLeft->setCoords(left_Low, lY1);
mRect->bottomRight->setCoords(right_Hight, lY2); 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; left = (leftPercentage/100) * mPlot->yAxis->range().upper;
width = (widthPercentage/100) * mPlot->yAxis->range().upper; width = (widthPercentage/100) * mPlot->yAxis->range().upper;
double lY1 = mPlot->yAxis->range().lower+left; double lY1 = mPlot->yAxis->range().lower+left-1;
double lY2 = width+left; double lY2 = width+left-3;
mRect->topLeft->setCoords(left_Low, lY1); mRect->topLeft->setCoords(left_Low, lY1);
mRect->bottomRight->setCoords(right_Hight, lY2); mRect->bottomRight->setCoords(right_Hight, lY2);

View File

@ -1,337 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.9.1, 2025-12-10T14:25:22. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{04219d0a-2df9-4f31-921d-c25f7a4fa4e5}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">0</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey">
<value type="QString">-fno-delayed-template-parsing</value>
</valuelist>
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.13.0 MSVC2017 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.13.0 MSVC2017 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5130.win64_msvc2017_64_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/Qt/Qt5.13.0/5.13.0/Src/qtsvg/src/build-svg-Desktop_Qt_5_13_0_MSVC2017_64bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/Qt/Qt5.13.0/5.13.0/Src/qtsvg/src/build-svg-Desktop_Qt_5_13_0_MSVC2017_64bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/Qt/Qt5.13.0/5.13.0/Src/qtsvg/src/build-svg-Desktop_Qt_5_13_0_MSVC2017_64bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy Configuration</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
<value type="QString">cpu-cycles</value>
</valuelist>
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
<value type="int" key="Analyzer.Perf.Frequency">250</value>
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Custom Executable</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
<value type="QString" key="RunConfiguration.Arguments"></value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default"></value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">21</value>
</data>
<data>
<variable>Version</variable>
<value type="int">21</value>
</data>
</qtcreator>