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

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)
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

View File

@ -2769,8 +2769,8 @@ void PropertyWidget::initWellProperty(QString strUuid, QString strSlfName, QStri
void PropertyWidget::initGridProperty(QString strGroup, QStringList slist, GridProperty& gridp)
{
if (strGroup != "边框")
_CreateVariantPropertyItem(strGroup, "间隔(m)", gridp.m_nInv, QVariant::Int);
_CreateVariantPropertyItem(strGroup, "线宽", gridp.m_nWidth, QVariant::Int);
_CreateVariantPropertyItem(strGroup, "间隔(m)", gridp.m_nInv, QVariant::Int, 1, 100);
_CreateVariantPropertyItem(strGroup, "线宽", gridp.m_nWidth, QVariant::Int, 1, 10);
_CreateVariantPropertyItem(strGroup, "颜色", gridp.m_clor, QVariant::Color);
QStringList listStyle;
@ -2804,6 +2804,34 @@ void PropertyWidget::initTrackProperty(FormTrackTop *fromTop, int iWidth, QMyTab
_CreateVariantPropertyItem("通常", "道名称", m_strTrackName, QVariant::String);
_CreateVariantPropertyItem("通常", "道头字体", fromTop->m_font, QVariant::Font);
_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;

View File

@ -40,6 +40,8 @@ FormDraw::FormDraw(QWidget *parent, QString strWellName, QString strTrackName) :
ui->setupUi(this);
setAcceptDrops(true);
m_pFWell = qobject_cast<FormWell*>(parent);
m_strWellName = strWellName;
m_strTrackName = strTrackName;
m_nSltk=15.0;//杆状图长度
@ -2798,7 +2800,7 @@ void FormDraw::paintEvent(QPaintEvent*)
rect.setTop(rect.top() + 1);
// 3. 准备绘制边框
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) {
@ -3149,10 +3151,10 @@ void FormDraw::s_mouseWheel(QWheelEvent *event)
emit CallManage::getInstance()->sig_mouseWheel(event);
}
void FormDraw::setColWidth(int iNewWidth)
void FormDraw::setColWidth(float fNewWidth)
{
m_nTrackW = iNewWidth;
iNewWidth = iNewWidth * g_dPixelPerCm;
m_nTrackW = fNewWidth;
fNewWidth = fNewWidth * g_dPixelPerCm;
// 获取当前widget的所有子控件
const QObjectList &children = this->children();
//判断为空

View File

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

View File

@ -3,6 +3,7 @@
#include <QDebug>
#include "CallManage.h"
#include "geometryutils.h"
#include "formwell.h"
extern int g_iOneWidth; //道宽
@ -13,6 +14,8 @@ FormTrack::FormTrack(QWidget *parent, QString strWellName, QString strTrackName)
{
ui->setupUi(this);
m_pFWell = qobject_cast<FormWell*>(parent);
m_strTrackUuid = getUUid();
m_strWellName = strWellName;
m_strTrackName = strTrackName;
@ -188,7 +191,7 @@ void FormTrack::paintEvent(QPaintEvent *event)
rect.setTop(rect.top() + 1);
// 绘制边框
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) {

View File

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

View File

@ -7,6 +7,7 @@
#include <QPushButton>
#include <QVBoxLayout>
#include "geometryutils.h"
#include "formwell.h"
//曲线名称(单个)
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);
m_pFWell = qobject_cast<FormWell*>(parent);
m_strSlfName = strSlfName;
m_strWellName = strWellName;
m_strTrackName = strTrackName;
@ -75,13 +78,29 @@ void FormTrackTop::paintEvent(QPaintEvent* event)
painter.setBrush(Qt::NoBrush); // 确保文字不被填充色遮挡
painter.setFont(m_font);
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.setTop(rect.top() + 1);
// 3. 准备绘制边框
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) {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -87,6 +87,7 @@ public:
QLineEdit *spinbox2;
QLineEdit *spinbox3;
int m_nObjLayerH = 104; // 对象层高度
int m_iScale=200;
double m_iY1=-1000;
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
{
xAxis->setRange(-value, xAxis->range().size(), Qt::AlignRight);
replot();
const QCPRange& rg = xAxis->range();
this->updateDepthY(rg.lower, rg.upper);
replot();
}
}
else{
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->replot();
const QCPRange& rg = yAxis->range();
this->updateDepthY(rg.lower, rg.upper);
replot();
}
}
}