网格属性编辑器,修改网格颜色宽度等逻辑

This commit is contained in:
DESKTOP-450PEFP\mainc 2026-04-21 09:01:23 +08:00
parent a762efde08
commit 47d7ef62b6
15 changed files with 230 additions and 218 deletions

View File

@ -13,4 +13,13 @@ enum BorderFlag {
}; };
Q_DECLARE_FLAGS(BorderFlags, BorderFlag) Q_DECLARE_FLAGS(BorderFlags, BorderFlag)
struct GridProperty
{
GridProperty() :m_nInv(1), m_nWidth(1), m_clor(0, 0, 0), m_nType(1) {}
int m_nInv;
int m_nWidth;
QColor m_clor;
int m_nType;
};
#endif // LOG_COMMON_H #endif // LOG_COMMON_H

View File

@ -2769,8 +2769,8 @@ void PropertyWidget::initWellProperty(QString strUuid, QString strSlfName, QStri
void PropertyWidget::initGridProperty(QString strGroup, QStringList slist, GridProperty& gridp) void PropertyWidget::initGridProperty(QString strGroup, QStringList slist, GridProperty& gridp)
{ {
if (strGroup != "边框") if (strGroup != "边框")
_CreateVariantPropertyItem(strGroup, "间隔(m)", gridp.m_nInv, QVariant::Int); _CreateVariantPropertyItem(strGroup, "间隔(m)", gridp.m_nInv, QVariant::Int, 1, 100);
_CreateVariantPropertyItem(strGroup, "线宽", gridp.m_nWidth, QVariant::Int); _CreateVariantPropertyItem(strGroup, "线宽", gridp.m_nWidth, QVariant::Int, 1, 10);
_CreateVariantPropertyItem(strGroup, "颜色", gridp.m_clor, QVariant::Color); _CreateVariantPropertyItem(strGroup, "颜色", gridp.m_clor, QVariant::Color);
QStringList listStyle; QStringList listStyle;
@ -2804,6 +2804,34 @@ void PropertyWidget::initTrackProperty(FormTrackTop *fromTop, int iWidth, QMyTab
_CreateVariantPropertyItem("通常", "道名称", m_strTrackName, QVariant::String); _CreateVariantPropertyItem("通常", "道名称", m_strTrackName, QVariant::String);
_CreateVariantPropertyItem("通常", "道头字体", fromTop->m_font, QVariant::Font); _CreateVariantPropertyItem("通常", "道头字体", fromTop->m_font, QVariant::Font);
_CreateVariantPropertyItem("通常", "道头字颜色", fromTop->m_fontColor, QVariant::Color); _CreateVariantPropertyItem("通常", "道头字颜色", fromTop->m_fontColor, QVariant::Color);
//
// _CreateVariantPropertyItem("网格", "水平", fromTop->m_nTrackW, QVariant::Bool);
// _CreateVariantPropertyItem("网格", "垂直", fromTop->m_nTrackW, QVariant::Bool);
// _CreateVariantPropertyItem("网格", "道左刻度", fromTop->m_nTrackW, QVariant::Double);
// _CreateVariantPropertyItem("网格", "道右刻度", fromTop->m_nTrackW, QVariant::Double);
// _CreateVariantPropertyItem("网格", "同步修改曲线刻度", fromTop->m_nTrackW, QVariant::Double);
// _CreateVariantPropertyItem("网格", "道垂直网格数", fromTop->m_nTrackW, QVariant::Double);
// _CreateVariantPropertyItem("网格", "垂直网格粗线间隔", fromTop->m_nTrackW, QVariant::Double);
//
// QStringList listStyle;
// listStyle.append("无");
// listStyle.append("实线");
// listStyle.append("虚线");
// listStyle.append("点线");
// listStyle.append("虚点线");
// listStyle.append("虚点点线");
// _CreateVariantPropertyItem("垂直网格细线线型", "线宽", formInfo->m_dWidth, QVariant::Int);
// _CreateVariantPropertyItem("垂直网格细线线型", "颜色", formInfo->m_lineColor, QVariant::Color);
// _CreateEnumPropertyItem("垂直网格细线线型", "线型", (int)formInfo->m_lineStyle, listStyle);
//
// _CreateVariantPropertyItem("垂直网格粗线线型", "线宽", formInfo->m_dWidth, QVariant::Int);
// _CreateVariantPropertyItem("垂直网格粗线线型", "颜色", formInfo->m_lineColor, QVariant::Color);
// _CreateEnumPropertyItem("垂直网格粗线线型", "线型", (int)formInfo->m_lineStyle, listStyle);
//
// _CreateVariantPropertyItem("边框", "绘制顶边框", fromTop->m_nTrackW, QVariant::Bool);
// _CreateVariantPropertyItem("边框", "绘制底边框", fromTop->m_nTrackW, QVariant::Bool);
// _CreateVariantPropertyItem("边框", "绘制左边框", fromTop->m_nTrackW, QVariant::Bool);
// _CreateVariantPropertyItem("边框", "绘制右边框", fromTop->m_nTrackW, QVariant::Bool);
//当前属性类型 //当前属性类型
m_strCurrentProperty = Track_Property; m_strCurrentProperty = Track_Property;

View File

@ -40,6 +40,8 @@ FormDraw::FormDraw(QWidget *parent, QString strWellName, QString strTrackName) :
ui->setupUi(this); ui->setupUi(this);
setAcceptDrops(true); setAcceptDrops(true);
m_pFWell = qobject_cast<FormWell*>(parent);
m_strWellName = strWellName; m_strWellName = strWellName;
m_strTrackName = strTrackName; m_strTrackName = strTrackName;
m_nSltk=15.0;//杆状图长度 m_nSltk=15.0;//杆状图长度
@ -2798,7 +2800,7 @@ void FormDraw::paintEvent(QPaintEvent*)
rect.setTop(rect.top() + 1); rect.setTop(rect.top() + 1);
// 3. 准备绘制边框 // 3. 准备绘制边框
painter.save(); painter.save();
painter.setPen(QPen(Qt::black, 2)); // 颜色、宽度可自定义 painter.setPen(QPen(m_pFWell->getBorderGridProperty().m_clor, m_pFWell->getBorderGridProperty().m_nWidth)); // 颜色、宽度可自定义
// 上边框 // 上边框
if (m_BorderFlags & TopBorder) { if (m_BorderFlags & TopBorder) {
@ -3149,10 +3151,10 @@ void FormDraw::s_mouseWheel(QWheelEvent *event)
emit CallManage::getInstance()->sig_mouseWheel(event); emit CallManage::getInstance()->sig_mouseWheel(event);
} }
void FormDraw::setColWidth(int iNewWidth) void FormDraw::setColWidth(float fNewWidth)
{ {
m_nTrackW = iNewWidth; m_nTrackW = fNewWidth;
iNewWidth = iNewWidth * g_dPixelPerCm; fNewWidth = fNewWidth * g_dPixelPerCm;
// 获取当前widget的所有子控件 // 获取当前widget的所有子控件
const QObjectList &children = this->children(); const QObjectList &children = this->children();
//判断为空 //判断为空

View File

@ -11,6 +11,7 @@
#include "MemRdWt.h" #include "MemRdWt.h"
#include "FormLine.h" #include "FormLine.h"
#include "common.h" #include "common.h"
#include "formwell.h"
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
@ -107,7 +108,7 @@ public:
private: private:
Ui::FormDraw *ui; Ui::FormDraw *ui;
FormWell* m_pFWell = NULL;
protected: protected:
void paintEvent(QPaintEvent *event); void paintEvent(QPaintEvent *event);
@ -122,7 +123,7 @@ public slots:
void s_mouseWheel(QWheelEvent *event); void s_mouseWheel(QWheelEvent *event);
void setRowHeight(double dHight, QProgressBar *progressBar, int iSplit); void setRowHeight(double dHight, QProgressBar *progressBar, int iSplit);
void setColWidth(int iNewWidth); void setColWidth(float fNewWidth);
public: public:
QString m_strUuid; QString m_strUuid;

View File

@ -3,6 +3,7 @@
#include <QDebug> #include <QDebug>
#include "CallManage.h" #include "CallManage.h"
#include "geometryutils.h" #include "geometryutils.h"
#include "formwell.h"
extern int g_iOneWidth; //道宽 extern int g_iOneWidth; //道宽
@ -13,6 +14,8 @@ FormTrack::FormTrack(QWidget *parent, QString strWellName, QString strTrackName)
{ {
ui->setupUi(this); ui->setupUi(this);
m_pFWell = qobject_cast<FormWell*>(parent);
m_strTrackUuid = getUUid(); m_strTrackUuid = getUUid();
m_strWellName = strWellName; m_strWellName = strWellName;
m_strTrackName = strTrackName; m_strTrackName = strTrackName;
@ -188,7 +191,7 @@ void FormTrack::paintEvent(QPaintEvent *event)
rect.setTop(rect.top() + 1); rect.setTop(rect.top() + 1);
// 绘制边框 // 绘制边框
painter.save(); painter.save();
painter.setPen(QPen(Qt::black, 2)); // 颜色、宽度可自定义 painter.setPen(QPen(m_pFWell->getBorderGridProperty().m_clor, m_pFWell->getBorderGridProperty().m_nWidth)); // 颜色、宽度可自定义
// 上边框 // 上边框
if (m_BorderFlags & TopBorder) { if (m_BorderFlags & TopBorder) {

View File

@ -11,7 +11,7 @@
namespace Ui { namespace Ui {
class FormTrack; class FormTrack;
} }
class FormWell;
//class NoLRBorderDelegate : public QStyledItemDelegate //class NoLRBorderDelegate : public QStyledItemDelegate
//{ //{
//public: //public:
@ -61,7 +61,7 @@ public:
private: private:
Ui::FormTrack *ui; Ui::FormTrack *ui;
FormWell* m_pFWell = NULL;
protected: protected:
void paintEvent(QPaintEvent *event); void paintEvent(QPaintEvent *event);

View File

@ -7,6 +7,7 @@
#include <QPushButton> #include <QPushButton>
#include <QVBoxLayout> #include <QVBoxLayout>
#include "geometryutils.h" #include "geometryutils.h"
#include "formwell.h"
//曲线名称(单个) //曲线名称(单个)
FormTrackTop::FormTrackTop(QWidget *parent, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QColor lineColor) : FormTrackTop::FormTrackTop(QWidget *parent, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QColor lineColor) :
@ -17,6 +18,8 @@ FormTrackTop::FormTrackTop(QWidget *parent, QString strSlfName, QString strWellN
// //
setAcceptDrops(true); setAcceptDrops(true);
m_pFWell = qobject_cast<FormWell*>(parent);
m_strSlfName = strSlfName; m_strSlfName = strSlfName;
m_strWellName = strWellName; m_strWellName = strWellName;
m_strTrackName = strTrackName; m_strTrackName = strTrackName;
@ -75,13 +78,29 @@ void FormTrackTop::paintEvent(QPaintEvent* event)
painter.setBrush(Qt::NoBrush); // 确保文字不被填充色遮挡 painter.setBrush(Qt::NoBrush); // 确保文字不被填充色遮挡
painter.setFont(m_font); painter.setFont(m_font);
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);
bool bVer = false;
QString text = m_strTrackName;
QFontMetrics fm1(m_font);
QRect textRect = fm1.boundingRect(m_strTrackName);
if (textRect.width() > rect.width())
{
text = "";
for (int i = 0; i < m_strTrackName.size(); i++) {
if (!i)text += m_strTrackName.at(i);
else {
text += "\n";
text += m_strTrackName.at(i);
}
}
}
painter.drawText(rect.left(), rect.top(), rect.width(), rect.height(), Qt::AlignCenter, text);
rect.setLeft(rect.left() + 1); rect.setLeft(rect.left() + 1);
rect.setTop(rect.top() + 1); rect.setTop(rect.top() + 1);
// 3. 准备绘制边框 // 3. 准备绘制边框
painter.save(); painter.save();
painter.setPen(QPen(Qt::black, 2)); // 颜色、宽度可自定义 painter.setPen(QPen(m_pFWell->getBorderGridProperty().m_clor, m_pFWell->getBorderGridProperty().m_nWidth)); // 颜色、宽度可自定义
// 上边框 // 上边框
if (m_BorderFlags & TopBorder) { if (m_BorderFlags & TopBorder) {

View File

@ -15,7 +15,7 @@
namespace Ui { namespace Ui {
class FormTrackTop; class FormTrackTop;
} }
class FormWell;
class FormTrackTop : public QWidget class FormTrackTop : public QWidget
{ {
Q_OBJECT Q_OBJECT
@ -55,12 +55,16 @@ public:
BorderFlags m_BorderFlags; BorderFlags m_BorderFlags;
public: public:
QJsonObject makeJson(); QJsonObject makeJson();
private: private:
QPoint startPosition; QPoint startPosition;
FormWell* m_pFWell = NULL;
}; };
#endif // FormTrackTop_H #endif // FormTrackTop_H

View File

@ -5,6 +5,7 @@
#include "geometryutils.h" #include "geometryutils.h"
#include "mainwindowcurve.h" #include "mainwindowcurve.h"
#include "PropertyWidget.h" #include "PropertyWidget.h"
#include "wellheader.h"
extern int g_iOneWidth; //道宽 extern int g_iOneWidth; //道宽
//extern int m_iY1; //extern int m_iY1;
@ -34,6 +35,9 @@ FormWell::FormWell(QWidget *parent, QString strWellName) :
m_xiProperty.m_clor = QColor(208,208,208); m_xiProperty.m_clor = QColor(208,208,208);
m_borderProperty.m_clor = Qt::black;
m_borderProperty.m_nWidth = 2;
//ui->tableWidget->verticalHeader()->hide(); //行 //ui->tableWidget->verticalHeader()->hide(); //行
ui->tableWidget->horizontalHeader()->hide();//列 ui->tableWidget->horizontalHeader()->hide();//列
int rowcount = 3; //总行数 int rowcount = 3; //总行数
@ -84,6 +88,12 @@ FormWell::~FormWell()
delete ui; delete ui;
} }
void FormWell::setWellHeader(WellHeader* pHeader)
{
m_pWHeader = pHeader;
pHeader->m_pFormWell = this;
}
void FormWell::resizeEvent(QResizeEvent *event) void FormWell::resizeEvent(QResizeEvent *event)
{ {
//重设表格高度 //重设表格高度
@ -219,7 +229,7 @@ QVector<QWidget *> FormWell::new_track(QStringList listdt, QString strTrackName)
else if(i==1) else if(i==1)
{ {
//设置高度 //设置高度
ui->tableWidget->setRowHeight(i, 300); ui->tableWidget->setRowHeight(i, m_nObjLyrH);
//曲线名称栏 //曲线名称栏
formTrack = new FormTrack(this, strWellName, strTrackName); formTrack = new FormTrack(this, strWellName, strTrackName);
@ -336,7 +346,7 @@ void FormWell::paintEvent(QPaintEvent *event)
rect.setTop(rect.top() + 1); rect.setTop(rect.top() + 1);
// 3. 准备绘制边框 // 3. 准备绘制边框
painter.save(); painter.save();
painter.setPen(QPen(Qt::black, 2)); // 颜色、宽度可自定义 painter.setPen(QPen(m_borderProperty.m_clor, m_borderProperty.m_nWidth)); // 颜色、宽度可自定义
// 上边框 // 上边框
if (m_BorderFlags & TopBorder) { if (m_BorderFlags & TopBorder) {
@ -671,19 +681,28 @@ void FormWell::setWellProperty(QVariantList listVal)
gridpt->m_nType = listVal.at(2).toInt(); gridpt->m_nType = listVal.at(2).toInt();
} }
int columnCount = ui->tableWidget->columnCount();//总列数 if (strGroup == "边框")
for (int i = 0; i < columnCount; i++)
{ {
if (ui->tableWidget->cellWidget(1, i) == nullptr) update();
continue; if(m_pWHeader)
auto myWidget = ui->tableWidget->cellWidget(2, i); m_pWHeader->update();
if (myWidget == nullptr) }
continue; else
{
FormDraw *formDraw = qobject_cast<FormDraw*>(myWidget); int columnCount = ui->tableWidget->columnCount();//总列数
if (formDraw) for (int i = 0; i < columnCount; i++)
{ {
formDraw->changeGridProperty(strGroup, gridpt->m_nInv, gridpt->m_nWidth, gridpt->m_clor, gridpt->m_nType); if (ui->tableWidget->cellWidget(1, i) == nullptr)
continue;
auto myWidget = ui->tableWidget->cellWidget(2, i);
if (myWidget == nullptr)
continue;
FormDraw *formDraw = qobject_cast<FormDraw*>(myWidget);
if (formDraw)
{
formDraw->changeGridProperty(strGroup, gridpt->m_nInv, gridpt->m_nWidth, gridpt->m_clor, gridpt->m_nType);
}
} }
} }
} }
@ -957,7 +976,7 @@ void FormWell::getTableSize_Head(int &iHight)
} }
if(iHight == 0) if(iHight == 0)
{ {
iHight = 100 + 300; iHight = 100 + m_nObjLyrH;
} }
} }

View File

@ -9,19 +9,10 @@
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
struct GridProperty
{
GridProperty() :m_nInv(1), m_nWidth(1), m_clor(0, 0, 0), m_nType(1) {}
int m_nInv;
int m_nWidth;
QColor m_clor;
int m_nType;
};
namespace Ui { namespace Ui {
class FormWell; class FormWell;
} }
class WellHeader;
class FormWell : public QWidget class FormWell : public QWidget
{ {
Q_OBJECT Q_OBJECT
@ -30,6 +21,7 @@ public:
explicit FormWell(QWidget *parent = nullptr, QString strWellName=""); explicit FormWell(QWidget *parent = nullptr, QString strWellName="");
~FormWell(); ~FormWell();
void setWellHeader(WellHeader* pHeader);
// 插入列,返回列索引 // 插入列,返回列索引
int insertColumn(double dw); int insertColumn(double dw);
@ -54,16 +46,20 @@ protected:
void resizeWindow(); void resizeWindow();
private: private:
Ui::FormWell *ui; Ui::FormWell *ui;
WellHeader* m_pWHeader = NULL;
GridProperty m_cuProperty; // 粗网格 GridProperty m_cuProperty; // 粗网格
GridProperty m_zhongProperty; // 中网格 GridProperty m_zhongProperty; // 中网格
GridProperty m_xiProperty; // 细网格 GridProperty m_xiProperty; // 细网格
GridProperty m_borderProperty; // 边框 GridProperty m_borderProperty; // 边框
GridProperty m_verCuProperty; // 粗网格
GridProperty m_verXiProperty; // xi网格
public: public:
QString m_strUuid; QString m_strUuid;
QString m_strWellName; QString m_strWellName;
QString m_strSlfName=""; QString m_strSlfName="";
int m_nObjLyrH = 100;
int m_iScale=200; int m_iScale=200;
double m_iY1=0; double m_iY1=0;
double m_iY2=0; double m_iY2=0;

View File

@ -11,6 +11,7 @@
</ProjectConfiguration> </ProjectConfiguration>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<QtMoc Include="wellheader.h" />
<QtMoc Include="TransparentDraggableCrackObject.h" /> <QtMoc Include="TransparentDraggableCrackObject.h" />
<QtMoc Include="selectwelldialog.h" /> <QtMoc Include="selectwelldialog.h" />
<QtMoc Include="TransparentDraggableCorePhysics.h" /> <QtMoc Include="TransparentDraggableCorePhysics.h" />
@ -216,6 +217,7 @@
<ClCompile Include="variantfactory.cpp" /> <ClCompile Include="variantfactory.cpp" />
<ClCompile Include="variantmanager.cpp" /> <ClCompile Include="variantmanager.cpp" />
<ClCompile Include="ViewInfo.cpp" /> <ClCompile Include="ViewInfo.cpp" />
<ClCompile Include="wellheader.cpp" />
<ClCompile Include="YxzpDialog.cpp" /> <ClCompile Include="YxzpDialog.cpp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -316,6 +316,9 @@
<QtMoc Include="TransparentDraggableCrackObject.h"> <QtMoc Include="TransparentDraggableCrackObject.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</QtMoc> </QtMoc>
<QtMoc Include="wellheader.h">
<Filter>Header Files</Filter>
</QtMoc>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="backgrounddelegate.cpp"> <ClCompile Include="backgrounddelegate.cpp">
@ -660,6 +663,9 @@
<ClCompile Include="3rd_tiff\libtiff\port\getopt.c"> <ClCompile Include="3rd_tiff\libtiff\port\getopt.c">
<Filter>libtiff\port</Filter> <Filter>libtiff\port</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="wellheader.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<QtRcc Include="logplus.qrc"> <QtRcc Include="logplus.qrc">

View File

@ -22,6 +22,7 @@
#include "TIFFIO.H" #include "TIFFIO.H"
#include "TIFF.H" #include "TIFF.H"
#include "DepthProgress.h" #include "DepthProgress.h"
#include "wellheader.h"
//主窗口为了方便获取tab当前页 //主窗口为了方便获取tab当前页
extern MainWindow *g_mainWindow; extern MainWindow *g_mainWindow;
@ -2152,13 +2153,14 @@ QStringList MainWindowCurve::insertCol(int nW)
return sret; return sret;
} }
QString strWellName = ui->tableWidget_2->item(0, column)->text(); WellHeader* pWheader = qobject_cast<WellHeader*>(ui->tableWidget_2->cellWidget(0, column));
if (pWheader)
{
sret << pWheader->m_strWellName << pWheader->m_strSlfName;
}
//设置列宽 //设置列宽
ui->tableWidget_2->setColumnWidth(column, iWidth+nW*g_dPixelPerCm); ui->tableWidget_2->setColumnWidth(column, iWidth+nW*g_dPixelPerCm);
sret << strWellName << strSlfName;
return sret; return sret;
} }
@ -2191,12 +2193,11 @@ QStringList MainWindowCurve::getSelectWell_New()
} }
else if(ui->tableWidget_2->columnCount()==1) else if(ui->tableWidget_2->columnCount()==1)
{ {
//单井 WellHeader* pWheader = qobject_cast<WellHeader*>(ui->tableWidget_2->cellWidget(0, 0));
QString strWellName = ui->tableWidget_2->item(0, 0)->text(); if (pWheader)
//直接从单井获取data记录slf路径 {
QString strSlfName = ui->tableWidget_2->item(0, 0)->data(Qt::UserRole+1).toString(); sret << pWheader->m_strWellName << pWheader->m_strSlfName;
}
sret << strWellName << strSlfName;
return sret; return sret;
} }
else else
@ -2255,12 +2256,11 @@ QStringList MainWindowCurve::getSelectWell()
return sret; return sret;
} }
QString strWellName = ui->tableWidget_2->item(0, column)->text(); WellHeader* pWheader = qobject_cast<WellHeader*>(ui->tableWidget_2->cellWidget(0, column));
//直接从选中的井获取data记录slf路径 if (pWheader)
QString strSlfName = ui->tableWidget_2->item(0, column)->data(Qt::UserRole+1).toString(); {
sret << pWheader->m_strWellName << pWheader->m_strSlfName;
sret << strWellName << strSlfName; }
return sret; return sret;
} }
@ -3175,19 +3175,27 @@ void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName)
QTableWidgetItem *headerItem = new QTableWidgetItem(""); QTableWidgetItem *headerItem = new QTableWidgetItem("");
ui->tableWidget_2->setHorizontalHeaderItem(columnCount, headerItem); ui->tableWidget_2->setHorizontalHeaderItem(columnCount, headerItem);
WellHeader *wellH = NULL;
for(int i=0; i<rowcount; i++) for(int i=0; i<rowcount; i++)
{ {
if(i==0) if(i==0)
{ {
//设置高度 //设置高度
ui->tableWidget_2->setRowHeight(i, 100); ui->tableWidget_2->setRowHeight(i, 100);
wellH = new WellHeader(this, strSlfName, strWellName);
wellH->m_strUuid = m_strUuid;
wellH->setBorderFlags(BorderFlags(TopBorder |BottomBorder | LeftBorder | RightBorder));
//
ui->tableWidget_2->setCellWidget(i, columnCount, wellH);
// //
QTableWidgetItem* item = new QTableWidgetItem(strWellName); // QTableWidgetItem* item = new QTableWidgetItem(strWellName);
setItemBorderFlags(item, BorderFlags(TopBorder | BottomBorder | LeftBorder | RightBorder)); // 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); //设置文本居中
ui->tableWidget_2->setItem(i, columnCount, item); // ui->tableWidget_2->setItem(i, columnCount, item);
} }
else else
{ {
@ -3203,7 +3211,7 @@ void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName)
dHight = 32767; dHight = 32767;
} }
dHight = dHight+300+100+10; dHight = dHight+ m_nObjLayerH +100+10;
//设置高度 //设置高度
//jyl ui->tableWidget_2->setRowHeight(i, (int)dHight); //jyl ui->tableWidget_2->setRowHeight(i, (int)dHight);
// 屏幕高度 // 屏幕高度
@ -3222,7 +3230,7 @@ void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName)
} }
// //
//获取井well前2行的高度 //获取井well前2行的高度
int iTableSize_Head = 100 + 300; int iTableSize_Head = 100 + m_nObjLayerH;
//此处还没有生成well所以不能这样获取 //此处还没有生成well所以不能这样获取
//getTableSize_Head(iTableSize_Head); //getTableSize_Head(iTableSize_Head);
// //
@ -3234,7 +3242,9 @@ void MainWindowCurve::s_NewWell(QString strWellName, QString strSlfName)
widgetWell->m_iY2 = m_iY2; widgetWell->m_iY2 = m_iY2;
widgetWell->m_strUuid = m_strUuid; widgetWell->m_strUuid = m_strUuid;
widgetWell->m_strSlfName = strSlfName; widgetWell->m_strSlfName = strSlfName;
widgetWell->m_nObjLyrH = m_nObjLayerH;
widgetWell->m_iScale = m_iScale; widgetWell->m_iScale = m_iScale;
widgetWell->setWellHeader(wellH);
// //
ui->tableWidget_2->setCellWidget(i, columnCount, widgetWell);//默认用widgetWell填充满 ui->tableWidget_2->setCellWidget(i, columnCount, widgetWell);//默认用widgetWell填充满
m_mapFWell.insert(strWellName, widgetWell); m_mapFWell.insert(strWellName, widgetWell);
@ -3368,7 +3378,10 @@ void MainWindowCurve::s_NewTrack()
return; return;
} }
QString strWellName = ui->tableWidget_2->item(0, column)->text(); QStringList sret = this->getSelectWell();
if (sret.length() <= 0)
return;
QString strWellName = sret.at(0);
//新建道 //新建道
emit CallManage::getInstance()->sig_NewTrack(m_strUuid, strWellName, "", "", ""); emit CallManage::getInstance()->sig_NewTrack(m_strUuid, strWellName, "", "", "");
@ -3380,75 +3393,15 @@ void MainWindowCurve::s_NewTrack()
void MainWindowCurve::s_NewDepth() void MainWindowCurve::s_NewDepth()
{ {
int column = -1; int column = -1;
int nW = 3; int nW = 2;
QString strSlfName = ""; QStringList sret = this->insertCol(nW);
if (sret.length() <= 0)
//如果视图为空,则根据左侧选中的井来创建深度道 return;
if(ui->tableWidget_2->columnCount()==0)
{
QString strLeft = m_leftWidgets->getLeftTreeString();
if(strLeft.length() > 0)
{
QStringList list = strLeft.split("#@@#");//QString字符串分割函数
if (list.size() > 3)
{
strSlfName = list[0];
QString strWellName = list[1];
// QString strLineName = list[2];
// QString strType = list[3];
if(!m_listWell.contains(strWellName))
{
//井没创建,创建井+道+曲线
//新建井
s_NewWell(strWellName, strSlfName);
//m_listWell.push_back(strWellName);//重复添加
column= 0;
}
}
}
//return;
}
int iWidth = 0;
if(column < 0)
{
column = ui->tableWidget_2->currentColumn();//列编号从0开始
iWidth = ui->tableWidget_2->columnWidth(column);
}
if(column<0)
{
//当前没有选中井
QMessageBox::warning(this, "提示", "当前没有选中井", "确定");
return;
}
if(column%2==0)
{
}
else
{
//空白列
QMessageBox::warning(this, "提示", "当前没有选中井", "确定");
return;
}
QString strWellName = ui->tableWidget_2->item(0, column)->text();
//直接从选中的井获取data记录slf路径
if(strSlfName=="")
{
strSlfName = ui->tableWidget_2->item(0, column)->data(Qt::UserRole+1).toString();
}
//设置列宽
ui->tableWidget_2->setColumnWidth(column, iWidth+nW*g_dPixelPerCm+8);
QStringList dt; QStringList dt;
dt << m_strUuid; dt << m_strUuid;
dt << strWellName; dt << sret.at(0);
dt << strSlfName; dt << sret.at(1);
dt << "深度"; dt << "深度";
dt << "depthObject"; dt << "depthObject";
dt << QString::number(nW); dt << QString::number(nW);
@ -3682,49 +3635,16 @@ void MainWindowCurve::s_NewShowDip()
void MainWindowCurve::s_pinLvAc() void MainWindowCurve::s_pinLvAc()
{ {
int column = -1;
int nW = 4; int nW = 4;
if(ui->tableWidget_2->columnCount()==0) QStringList sret = this->insertCol(nW);
{ if (sret.length() <= 0)
return; return;
}
int iWidth = 0;
if(column < 0)
{
column = ui->tableWidget_2->currentColumn();//列编号从0开始
iWidth = ui->tableWidget_2->columnWidth(column);
}
if(column<0)
{
//当前没有选中井
QMessageBox::warning(this, "提示", "当前没有选中井", "确定");
return;
}
if(column%2==0)
{
}
else
{
//空白列
QMessageBox::warning(this, "提示", "当前没有选中井", "确定");
return;
}
QString strWellName = ui->tableWidget_2->item(0, column)->text();
//直接从选中的井获取data记录slf路径
QString strSlfName = ui->tableWidget_2->item(0, column)->data(Qt::UserRole+1).toString();
//设置列宽
ui->tableWidget_2->setColumnWidth(column, iWidth+nW*g_dPixelPerCm+8);
QStringList dt; QStringList dt;
dt << m_strUuid; dt << m_strUuid;
dt << strWellName; dt << sret.at(0);
dt << strSlfName; dt << sret.at(1);
dt << ""; dt << "";
dt << "plObject"; dt << "plObject";
dt << QString::number(nW); dt << QString::number(nW);
@ -3734,38 +3654,13 @@ void MainWindowCurve::s_pinLvAc()
void MainWindowCurve::s_NewGanZhuangTu() void MainWindowCurve::s_NewGanZhuangTu()
{ {
if(ui->tableWidget_2->columnCount()==0) int nW = 4;
{ QStringList sret = this->insertCol(nW);
return; if (sret.length() <= 0)
} return;
QString strWellName = sret.at(0);
int column = ui->tableWidget_2->currentColumn();//列编号从0开始
if(column<0)
{
//当前没有选中井
QMessageBox::warning(this, "提示", "当前没有选中井", "确定");
return;
}
if(column%2==0)
{
}
else
{
//空白列
QMessageBox::warning(this, "提示", "当前没有选中井", "确定");
return;
}
QString strWellName = ui->tableWidget_2->item(0, column)->text();
//直接从选中的井获取data记录slf路径 //直接从选中的井获取data记录slf路径
QString strSlfName = ui->tableWidget_2->item(0, column)->data(Qt::UserRole+1).toString(); QString strSlfName = sret.at(1);
int iWidth = ui->tableWidget_2->columnWidth(column);
int nW = 4;
//设置列宽
ui->tableWidget_2->setColumnWidth(column, iWidth+nW*g_dPixelPerCm+8);
//新建道 //新建道
emit CallManage::getInstance()->sig_NewTrack(m_strUuid, strWellName, strSlfName, "杆状图", "ganzhuangtuObject", nW); emit CallManage::getInstance()->sig_NewTrack(m_strUuid, strWellName, strSlfName, "杆状图", "ganzhuangtuObject", nW);
@ -3833,9 +3728,12 @@ void MainWindowCurve::s_Jykt()
return; return;
} }
QString strWellName = ui->tableWidget_2->item(0, column)->text(); QStringList sret = this->getSelectWell_New();
//直接从选中的井获取data记录slf路径 if (sret.length() <= 0)
QString strSlfName = ui->tableWidget_2->item(0, column)->data(Qt::UserRole+1).toString(); return;
QString strWellName = sret.at(0);
//直接从选中的井获取data记录slf路径
QString strSlfName = sret.at(1);
int iWidth = ui->tableWidget_2->columnWidth(column); int iWidth = ui->tableWidget_2->columnWidth(column);
@ -3884,9 +3782,12 @@ void MainWindowCurve::s_Denv()
return; return;
} }
QString strWellName = ui->tableWidget_2->item(0, column)->text(); QStringList sret = this->getSelectWell_New();
//直接从选中的井获取data记录slf路径 if (sret.length() <= 0)
QString strSlfName = ui->tableWidget_2->item(0, column)->data(Qt::UserRole+1).toString(); return;
QString strWellName = sret.at(0);
//直接从选中的井获取data记录slf路径
QString strSlfName = sret.at(1);
int iWidth = ui->tableWidget_2->columnWidth(column); int iWidth = ui->tableWidget_2->columnWidth(column);
@ -3935,9 +3836,12 @@ void MainWindowCurve::s_DrawImage()
return; return;
} }
QString strWellName = ui->tableWidget_2->item(0, column)->text(); QStringList sret = this->getSelectWell_New();
//直接从选中的井获取data记录slf路径 if (sret.length() <= 0)
QString strSlfName = ui->tableWidget_2->item(0, column)->data(Qt::UserRole+1).toString(); return;
QString strWellName = sret.at(0);
//直接从选中的井获取data记录slf路径
QString strSlfName = sret.at(1);
int iWidth = ui->tableWidget_2->columnWidth(column); int iWidth = ui->tableWidget_2->columnWidth(column);
@ -4084,8 +3988,8 @@ void MainWindowCurve::s_NewTrackChangeWidth(QString strWellName, double nW)
continue; continue;
} }
// //
QString strWellNameTemp = ui->tableWidget_2->item(0, i)->text(); WellHeader* pWheader = qobject_cast<WellHeader*>(ui->tableWidget_2->cellWidget(0, i));
if(strWellNameTemp==strWellName) if(pWheader && pWheader->m_strWellName==strWellName)
{ {
int iWidth = ui->tableWidget_2->columnWidth(i);//设置列宽 int iWidth = ui->tableWidget_2->columnWidth(i);//设置列宽
ui->tableWidget_2->setColumnWidth(i, iWidth + ntmpw + 6); ui->tableWidget_2->setColumnWidth(i, iWidth + ntmpw + 6);
@ -4453,7 +4357,7 @@ void MainWindowCurve::s_changeScale(QString strUuid, int iNewScale)
dHight = 32767; dHight = 32767;
} }
double dHightOne = dHight+300+100+10; double dHightOne = dHight+ m_nObjLayerH +100+10;
//设置高度 //设置高度
//jyl ui->tableWidget_2->setRowHeight(1, (int)dHightOne); //jyl ui->tableWidget_2->setRowHeight(1, (int)dHightOne);
@ -4582,7 +4486,7 @@ void MainWindowCurve::s_changeDepth(QString strUuid, QString strSlfName, QString
} }
dHightMax = dHightMax*100.0/(double)m_iScale * g_dPixelPerCm; dHightMax = dHightMax*100.0/(double)m_iScale * g_dPixelPerCm;
double dHightOne = dHightMax+300+100+10; double dHightOne = dHightMax+ m_nObjLayerH +100+10;
//设置高度 //设置高度
//jyl ui->tableWidget_2->setRowHeight(1, (int)dHightOne); //jyl ui->tableWidget_2->setRowHeight(1, (int)dHightOne);
@ -4660,7 +4564,7 @@ void MainWindowCurve::changeDepthForPrint()
} }
// //
//获取井well前2行的高度 //获取井well前2行的高度
int iTableSize_Head = 100 + 300; int iTableSize_Head = 100 + m_nObjLayerH;
//此处还没有生成well所以不能这样获取 //此处还没有生成well所以不能这样获取
//getTableSize_Head(iTableSize_Head); //getTableSize_Head(iTableSize_Head);
// //
@ -4890,7 +4794,20 @@ void MainWindowCurve::resizeItem(QString strWellName, double colWidth, double ro
continue; continue;
} }
// //
QString strWellNameTemp = ui->tableWidget_2->item(0, i)->text(); QStringList sret = this->getSelectWell_New();
if (sret.length() <= 0)
return;
QString strWellName = sret.at(0);
//直接从选中的井获取data记录slf路径
QString strSlfName = sret.at(1);
QString strWellNameTemp = "";
WellHeader* pWheader = qobject_cast<WellHeader*>(ui->tableWidget_2->cellWidget(0, i));
if (pWheader)
{
strWellNameTemp = pWheader->m_strWellName;
}
if(strWellNameTemp==strWellName) if(strWellNameTemp==strWellName)
{ {
ui->tableWidget_2->setColumnWidth(i, colWidth+8); ui->tableWidget_2->setColumnWidth(i, colWidth+8);
@ -4997,7 +4914,7 @@ void MainWindowCurve::getTableSize_Head(int &iHight)
{ {
if(iHight == 0) if(iHight == 0)
{ {
iHight = 100 + 300; iHight = 100 + m_nObjLayerH;
} }
return; return;
@ -5019,7 +4936,7 @@ void MainWindowCurve::getTableSize_Head(int &iHight)
// //
if(iHight == 0) if(iHight == 0)
{ {
iHight = 100 + 300; iHight = 100 + m_nObjLayerH;
} }
} }

View File

@ -87,6 +87,7 @@ public:
QLineEdit *spinbox2; QLineEdit *spinbox2;
QLineEdit *spinbox3; QLineEdit *spinbox3;
int m_nObjLayerH = 104; // 对象层高度
int m_iScale=200; int m_iScale=200;
double m_iY1=-1000; double m_iY1=-1000;
double m_iY2=0; double m_iY2=0;

View File

@ -11727,15 +11727,20 @@ void QMyCustomPlot::vertScrollBarChanged(QString strUuid, int value)
{ {
if (qAbs(xAxis->range().center()-value) > 0.01) // if user is dragging plot, we don't want to replot twice if (qAbs(xAxis->range().center()-value) > 0.01) // if user is dragging plot, we don't want to replot twice
{ {
xAxis->setRange(-value, xAxis->range().size(), Qt::AlignRight); xAxis->setRange(-value, xAxis->range().size(), Qt::AlignRight);
replot(); const QCPRange& rg = xAxis->range();
this->updateDepthY(rg.lower, rg.upper);
replot();
} }
} }
else{ else{
if (qAbs(this->yAxis->range().center()+value) > 0.01) // if user is dragging plot, we don't want to replot twice if (qAbs(this->yAxis->range().center()+value) > 0.01) // if user is dragging plot, we don't want to replot twice
{ {
this->yAxis->setRange(-value, this->yAxis->range().size(), Qt::AlignRight); this->yAxis->setRange(-value, this->yAxis->range().size(), Qt::AlignRight);
this->replot(); const QCPRange& rg = yAxis->range();
this->updateDepthY(rg.lower, rg.upper);
replot();
} }
} }
} }