logplus/logPlus/formline.cpp

322 lines
14 KiB
C++
Raw Normal View History

2025-10-29 17:23:30 +08:00
#include "formline.h"
#include "ui_formline.h"
#include <QPainter>
2026-03-18 16:16:11 +08:00
#include "CallManage.h"
#include "DrawTvd.h"
2025-10-29 17:23:30 +08:00
//demo画线暂时不用
FormLine::FormLine(QWidget *parent, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName) :
2025-10-29 17:23:30 +08:00
QWidget(parent),
ui(new Ui::FormLine)
{
ui->setupUi(this);
m_strSlfName = strSlfName;
m_strWellName = strWellName;
m_strTrackName = strTrackName;
m_strLineName = strLineName;
2026-03-18 16:16:11 +08:00
m_drawTvd = new CDrawTvd();
m_parent = parent;
2026-03-18 16:16:11 +08:00
//斜井三图一表
connect(CallManage::getInstance(), SIGNAL(sig_ChangeTvdProperty(QString, QString, QString, QString, QString, QString, QString, QVariant)),
this, SLOT(s_ChangeTvdProperty(QString, QString, QString, QString, QString, QString, QString, QVariant)));
}
void FormLine::DrawTvd()
{
// //
// QPainter painter(this);
// QRect rect = this->rect();
// //背景透明
// painter.fillRect(rect.left(), rect.top(), rect.width(), rect.height(), QColor(0, 0, 0, 0)); //QColor(67, 67, 67, 100)
// CDrawTvd *drawTvd = new CDrawTvd();
// drawTvd->sFilePath = m_strSlfName;
// drawTvd->DrawTvd(&painter, rect);
2025-10-29 17:23:30 +08:00
}
FormLine::~FormLine()
{
delete ui;
}
void FormLine::paintEvent(QPaintEvent*)
{
//
QPainter painter(this);
QRect rect = this->rect();
// QRect rect = m_parent->rect();
//背景透明
painter.fillRect(rect.left(), rect.top(), rect.width(), rect.height(), QColor(0, 0, 0, 0)); //QColor(67, 67, 67, 100)
2026-03-18 16:16:11 +08:00
if (!m_drawTvd)
m_drawTvd = new CDrawTvd();
m_drawTvd->sFilePath = m_strSlfName;
m_drawTvd->DrawTvd(&painter, rect);
// QPainter painter(this);
// QRect rect = this->rect();
// //背景透明
// painter.fillRect(rect.left(), rect.top(), rect.width(), rect.height(), QColor(0, 0, 0, 0)); //QColor(67, 67, 67, 100)
// painter.setPen(QPen(Qt::green,2,Qt::DashLine));
// //painter.setBrush(QBrush(Qt::red,Qt::SolidPattern));
// QFont font1("微软雅黑", 10, false, false); //fontSize 10
// painter.setFont(font1);
// painter.setPen(QColor(0, 0, 0)); // fontColor QColor(220, 220, 220)
// painter.drawText(rect.left() + 10, 10, ("画图")); // titleBarText QStringLiteral("动画")
// QRect rectRound(rect.left()+2,rect.top()+4, rect.width()-3, rect.height()-4);
// painter.drawRoundRect(rectRound);
}
2026-03-18 16:16:11 +08:00
void FormLine::s_ChangeTvdProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName,
QString strGroup, QString strProperty, QVariant variant)
{
if(m_strUuid != strUuid ||
m_strSlfName != strSlfName ||
m_strWellName != strWellName ||
m_strTrackName != strTrackName ||
m_strLineName != strLineName)
{
return;
}
2026-03-18 16:16:11 +08:00
if("通常" == strGroup)
{
// if("选择井斜数据" == strProperty)
// if("显示名称" == strProperty)
if("显示井名" == strProperty)
m_drawTvd->m_AliasWellName = variant.value<QString>();
}
if("绘制图形对象" == strGroup)
{
if("靶心" == strProperty)
m_drawTvd->objViewInfo->m_IsDrawBX = variant.value<bool>();
if("靶心参数表" == strProperty)
m_drawTvd->objViewInfo->m_IsDrawBxcs = variant.value<bool>();
if("井斜数据表" == strProperty)
m_drawTvd->objViewInfo->m_IsDrawTable = variant.value<bool>();
if("俯视图" == strProperty)
m_drawTvd->objViewInfo->m_IsDrawFst = variant.value<bool>();
if("侧视图深度在左边" == strProperty)
m_drawTvd->objViewInfo->m_DepthLeft = variant.value<bool>();
if("侧视图(水平位移)" == strProperty)
m_drawTvd->objViewInfo->m_IsDrawCst1 = variant.value<bool>();
if("侧视图(向东)" == strProperty)
m_drawTvd->objViewInfo->m_IsDrawCst2 = variant.value<bool>();
if("侧视图(向北)" == strProperty)
m_drawTvd->objViewInfo->m_IsDrawCst3 = variant.value<bool>();
if("侧视图(侧视角)" == strProperty)
m_drawTvd->objViewInfo->m_IsDrawCst = variant.value<bool>();
if("立体轨迹图" == strProperty)
m_drawTvd->objViewInfo->m_IsDrawLtgjt = variant.value<bool>();
if("绘制标注信息" == strProperty)
m_drawTvd->objViewInfo->m_isDrawNote = variant.value<bool>();
}
if("边框线型" == strGroup)
{
if("线宽" == strProperty)
m_drawTvd->m_FrameWidth = variant.value<int>();
else if("颜色" == strProperty)
m_drawTvd->m_FrameColor = variant.value<QColor>();
}
if("格线线型" == strGroup)
{
if("线宽" == strProperty)
m_drawTvd->m_GridWidth = variant.value<int>();
else if("颜色" == strProperty)
m_drawTvd->m_GridColor = variant.value<QColor>();
}
if("轨迹线型" == strGroup)
{
if("线宽" == strProperty)
m_drawTvd->m_GuijiWidth = variant.value<int>();
else if("颜色" == strProperty)
m_drawTvd->m_GuijiColor = variant.value<QColor>();
}
if("靶心半径线型" == strGroup)
{
if("线宽" == strProperty)
m_drawTvd->m_BxbjWidth = variant.value<int>();
else if("颜色" == strProperty)
m_drawTvd->m_BxbjColor = variant.value<QColor>();
}
if("靶心连线线型" == strGroup)
{
if("线宽" == strProperty)
m_drawTvd->m_BxlxWidth = variant.value<int>();
else if("颜色" == strProperty)
m_drawTvd->m_BxlxColor = variant.value<QColor>();
}
if("字体" == strGroup)
{
if("道头字体" == strProperty)
m_drawTvd->objViewInfo->m_HeadFont = variant.value<QFont>();
else if("道头颜色" == strProperty)
m_drawTvd->objViewInfo->m_HeadColor = variant.value<QColor>();
if("标题字体" == strProperty)
m_drawTvd->objViewInfo->m_TitleFont = variant.value<QFont>();
else if("标题颜色" == strProperty)
m_drawTvd->objViewInfo->m_TitleColor = variant.value<QColor>();
if("数据表字体" == strProperty)
m_drawTvd->objViewInfo->m_TableFont = variant.value<QFont>();
else if("数据表颜色" == strProperty)
m_drawTvd->objViewInfo->m_TableColor = variant.value<QColor>();
if("刻度字体" == strProperty)
m_drawTvd->objViewInfo->m_ScaleFont = variant.value<QFont>();
else if("刻度颜色" == strProperty)
m_drawTvd->objViewInfo->m_ScaleColor = variant.value<QColor>();
if("注释字体" == strProperty)
m_drawTvd->objViewInfo->m_NoteFont = variant.value<QFont>();
else if("注释颜色" == strProperty)
m_drawTvd->objViewInfo->m_NoteColor = variant.value<QColor>();
}
if("井斜数据表参数" == strGroup)
{
if("标题名" == strProperty)
m_drawTvd->m_Title_table = variant.value<QString>();
else if("头记录高度(cm)" == strProperty)
m_drawTvd->objViewInfo->m_Head_Height = variant.value<double>();
else if("数据记录高度(cm)" == strProperty)
m_drawTvd->objViewInfo->m_Rec_Height = variant.value<double>();
}
else if("俯视图参数" == strGroup)
{
if("标题名" == strProperty)
m_drawTvd->objViewInfo->m_Title_fst = variant.value<QString>();
else if("东西位移最小刻度" == strProperty)
m_drawTvd->objViewInfo->m_MinXe = variant.value<double>();
else if("东西位移最大刻度" == strProperty)
m_drawTvd->objViewInfo->m_MaxXe = variant.value<double>();
else if("南北位移最小刻度" == strProperty)
m_drawTvd->objViewInfo->m_MinYn = variant.value<double>();
else if("南北位移最大刻度" == strProperty)
m_drawTvd->objViewInfo->m_MaxYn = variant.value<double>();
else if("是否绘制闭合线" == strProperty)
m_drawTvd->objViewInfo->m_bPlotBhx = variant.value<bool>();
}
else if("立体轨迹图参数" == strGroup)
{
if("标题名" == strProperty)
m_drawTvd->m_Title_ltgj = variant.value<QString>();
2026-03-18 16:16:11 +08:00
else if("最大位移(m)" == strProperty)
m_drawTvd->objViewInfo->m_MaxWy1 = variant.value<double>();
else if("起始垂深(m)" == strProperty)
m_drawTvd->objViewInfo->m_LTTTVD = variant.value<double>();
else if("垂深间隔(m)" == strProperty)
m_drawTvd->objViewInfo->m_DepSpace1 = variant.value<double>();
else if("是否绘制立体框" == strProperty)
m_drawTvd->objViewInfo->m_is3DFrame = variant.value<bool>();
else if("俯视角(度)" == strProperty)
m_drawTvd->objViewInfo->m_LttAngle_X = variant.value<double>();
else if("侧视角(度)" == strProperty)
m_drawTvd->objViewInfo->m_LttAngle = variant.value<double>();
else if("倾斜角(度)" == strProperty)
m_drawTvd->objViewInfo->m_LttAngle_Z = variant.value<double>();
else if("竖线间隔" == strProperty)
m_drawTvd->objViewInfo->m_LTTTVD = variant.value<double>();
else if("俯视南北间隔数" == strProperty)
m_drawTvd->objViewInfo->m_YD = variant.value<double>();
else if("俯视东西间隔数" == strProperty)
m_drawTvd->objViewInfo->m_XD = variant.value<double>();
else if("附加属性类型" == strProperty)
m_drawTvd->objViewInfo->m_IsDrawProperty = variant.value<int>();
else if("选择井曲线1" == strProperty)
m_drawTvd->objViewInfo->m_CurveName1 = variant.value<QString>();
else if("选择井曲线2" == strProperty)
m_drawTvd->objViewInfo->m_CurveName2 = variant.value<QString>();
else if("调色板参数设置" == strProperty)
m_drawTvd->objViewInfo->m_ColorTableIndex = variant.value<int>();
else if("直径放大系数" == strProperty)
m_drawTvd->objViewInfo->m_calscale = variant.value<double>();
else if("波形基值" == strProperty)
m_drawTvd->objViewInfo->m_baseval = variant.value<double>();
else if("波形最大值" == strProperty)
m_drawTvd->objViewInfo->m_maxval = variant.value<double>();
else if("连续填充" == strProperty)
m_drawTvd->objViewInfo->m_isBlock = variant.value<bool>();
}
else if("侧视图参数" == strGroup)
{
if("标题名" == strProperty)
m_drawTvd->objViewInfo->m_Title_cst = variant.value<QString>();
else if("高宽相同" == strProperty)
m_drawTvd->objViewInfo->m_heqw = variant.value<bool>();
}
else if("侧视图(水平位移)" == strGroup)
{
if("最大侧视位移(m)" == strProperty)
m_drawTvd->objViewInfo->m_MaxWy_HOFF = variant.value<double>();
else if("最小侧视位移(m)" == strProperty)
m_drawTvd->objViewInfo->m_MinWy_HOFF = variant.value<double>();
else if("最大垂深(m)" == strProperty)
m_drawTvd->objViewInfo->m_MaxTVD_HOFF = variant.value<double>();
else if("最小垂深(m)" == strProperty)
m_drawTvd->objViewInfo->m_MinTVD_HOFF = variant.value<double>();
}
else if("侧视图(向东)" == strGroup)
{
if("最大侧视位移(m)" == strProperty)
m_drawTvd->objViewInfo->m_MaxWy_XE = variant.value<double>();
else if("最小侧视位移(m)" == strProperty)
m_drawTvd->objViewInfo->m_MinWy_XE = variant.value<double>();
else if("最大垂深(m)" == strProperty)
m_drawTvd->objViewInfo->m_MaxTVD_XE = variant.value<double>();
else if("最小垂深(m)" == strProperty)
m_drawTvd->objViewInfo->m_MinTVD_XE = variant.value<double>();
}
else if("侧视图(向北)" == strGroup)
{
if("最大侧视位移(m)" == strProperty)
m_drawTvd->objViewInfo->m_MaxWy_YN = variant.value<double>();
else if("最小侧视位移(m)" == strProperty)
m_drawTvd->objViewInfo->m_MinWy_YN = variant.value<double>();
else if("最大垂深(m)" == strProperty)
m_drawTvd->objViewInfo->m_MaxTVD_YN = variant.value<double>();
else if("最小垂深(m)" == strProperty)
m_drawTvd->objViewInfo->m_MinTVD_YN = variant.value<double>();
}
else if("侧视图(侧视角)" == strGroup)
{
if("最大侧视位移(m)" == strProperty)
m_drawTvd->objViewInfo->m_MaxWy = variant.value<double>();
else if("最小侧视位移(m)" == strProperty)
m_drawTvd->objViewInfo->m_MinWy = variant.value<double>();
else if("最大垂深(m)" == strProperty)
m_drawTvd->objViewInfo->m_MaxTVD = variant.value<double>();
else if("最小垂深(m)" == strProperty)
m_drawTvd->objViewInfo->m_MinTVD = variant.value<double>();
else if("深度间隔(m)" == strProperty)
m_drawTvd->objViewInfo->m_DepSpace = variant.value<double>();
else if("等分个数(=0按深度间隔)" == strProperty)
m_drawTvd->objViewInfo->m_DepSpaceN = variant.value<double>();
else if("侧视角(度)" == strProperty)
m_drawTvd->objViewInfo->m_CsAngle = variant.value<double>();
}
// else if("立体闭合方位线型" == strGroup)
// {
// if("线宽" == strProperty)
// m_drawTvd->objViewInfo->m_DepSpaceN = variant.value<bool>();
// if("颜色" == strProperty)
// m_drawTvd->objViewInfo->m_Rlev = variant.value<bool>();
// }
else if("立体轨迹图参数" == strGroup)
{
if("最小深度间隔(m)" == strProperty)
m_drawTvd->objViewInfo->m_Rlev = variant.value<bool>();
}
// else if("立体井径线型" == strGroup)
// {
// if("线宽" == strProperty)
// m_drawTvd->objViewInfo->m_DepSpaceN = variant.value<bool>();
// if("颜色" == strProperty)
// m_drawTvd->objViewInfo->m_Rlev = variant.value<bool>();
// }
update();
}