logplus/logPlus/forminfo.h

231 lines
7.6 KiB
C
Raw Normal View History

2025-10-29 17:23:30 +08:00
#ifndef FORMINFO_H
#define FORMINFO_H
#include <QWidget>
#include <QPainter>
#include <QPaintEvent>
//
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#pragma execution_character_set("utf-8")
namespace Ui {
class FormInfo;
}
class FormInfo : public QWidget
{
Q_OBJECT
public:
explicit FormInfo(QWidget *parent = nullptr, QString strSlfName="", QString strWellName="", QString strTrackName="", QString strLineName="", QColor lineColor=QColor(255,0,0));
~FormInfo();
void initProperty(QJsonObject obj);
2025-10-29 17:23:30 +08:00
private:
Ui::FormInfo *ui;
protected:
void paintEvent(QPaintEvent *event);
public slots:
void dragEnterEvent(QDragEnterEvent* event);
void dragMoveEvent(QDragMoveEvent* event);
void dropEvent(QDropEvent* event);
//属性
//左刻度
void s_ChangeLeftScale(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, double newLeftScale);
2025-10-29 17:23:30 +08:00
//右刻度
void s_ChangeRightScale(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, double newRightScale);
//刻度类型
void s_ChangeScaleType(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strScaleType);
2025-10-29 17:23:30 +08:00
//线颜色
void s_ChangeLineColor(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QColor lineColor);
2025-10-29 17:23:30 +08:00
//线宽
void s_ChangeLineWidth(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, double width);
2025-10-29 17:23:30 +08:00
//线型
void s_ChangeLineStyle(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, Qt::PenStyle lineStyle);
//绘制方式
//曲线
void s_ChangeDrawLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, bool bDrawLine);
//杆状
void s_ChangeDrawGan(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, bool bDrawGan);
//点状
void s_ChangeDrawPoint(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, bool bDrawPoint);
//绘制对称曲线
void s_ChangeDrawSymmetry(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, bool bDrawSymmetry);
2025-10-29 17:23:30 +08:00
//岩性填充-不填充
void s_ClearFillMode(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
2025-10-29 17:23:30 +08:00
//岩性填充-填充
void s_ChangeFillMode(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName,
2025-10-29 17:23:30 +08:00
QString newFillType, QString newTargetLine, QColor newColor, QString newLithosImage, QString newHeadFill,
float vMin, float vMax, QString strOtherScaleType, QColor frontColor, QColor backColor, QString newFillMode, bool bFillNow);
2025-10-29 17:23:30 +08:00
//修改曲线选择状态 iSelect=0未知1标准曲线2主曲线3从曲线
2026-01-30 09:47:13 +08:00
void s_ChangeLineStatus(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iSelect, bool bMerge);
2025-10-29 17:23:30 +08:00
public:
2025-10-30 11:55:37 +08:00
QString m_strUuid;
2026-03-08 23:22:36 +08:00
QString m_strTrackUuid="";
2025-10-29 17:23:30 +08:00
QString m_strSlfName;
QString m_strWellName;
QString m_strTrackName;
QString m_strLineName;
QString m_strAliasName;//显示名称
QString m_strUnit;//单位
bool m_bVerticaDrawing = false; // 垂向绘制
int m_nRotationAngle = 0; // 旋转角度
int m_iSelect=0; //iSelect=0未知1标准曲线2主曲线3从曲线
2026-01-30 09:47:13 +08:00
bool m_bMerge = false;//是拼接状态,否代表校深状态。为了切换时做数据清理
QString m_strType;//类型curve, wave
2025-10-29 17:23:30 +08:00
//
double m_dWidth;//线宽
QColor m_lineColor;//颜色(曲线颜色,固井文字颜色)
Qt::PenStyle m_lineStyle;//线形
2025-10-29 17:23:30 +08:00
//X坐标
float m_vmin;//左刻度
float m_vmax;//右刻度
QString m_strScaleType;//刻度类型(线性,对数)
2026-03-08 23:22:36 +08:00
qint8 m_nLeftCross = 0; // 左跨道个数
qint8 m_nRightCross = 0; // 右跨道个数
2025-10-29 17:23:30 +08:00
QFont m_curveNameFont; // 曲线名称字体
QFont m_curveUnitFont; // 曲线单位字体
QFont m_curveScaleFont; // 曲线刻度字体
//绘制方式
bool m_bDrawLine = true; // 曲线
bool m_bDrawGan = false; // 杆状
bool m_bDrawPoint = false; // 点状
bool m_bDrawSymmetry = false; // 绘制对称曲线
2025-10-29 17:23:30 +08:00
//岩性填充
QString m_newHeadFill;//头部图例
QString m_newTargetLine;//目标曲线
QString m_newFillType;//填充类型
QString m_newFillMode;//填充模式
2025-10-29 17:23:30 +08:00
QColor m_newColor;//填充颜色
QString m_newLithosImage = "";//岩性图片
float m_new_vMin;//其他目标曲线
float m_new_vMax;//其他目标曲线
QString m_strOtherScaleType;//其他目标曲线,刻度类型(线性,对数)
QColor m_frontColor;//岩性前景色
QColor m_backColor;//岩性背景色
2025-10-29 17:23:30 +08:00
int m_nJg;
2026-02-05 14:53:44 +08:00
int m_nDrawType; // 绘图类型
int m_nFillType; // 填充类型
bool m_bDrawDepth = false; // 绘制波深度
bool m_bDrawBase = false; // 绘制波基线
bool m_bOddEven = false; // 奇偶配色
QString m_strAmp; // 幅度刻度
float m_fMaxAmp; // 最大振幅
bool m_bShowScale; // 显示刻度
float m_fWaveBase = 0.0f; // 波列基值
int m_nWaveJg = 100; // 波形间隔
float m_fWaveHei = 1; // 波形高度
int m_nColorNum = 256; // 调色板参数设置-变密度颜色级数
int m_nSchemeIndex = 1; // 调色板参数设置-色板
// 解释结论
int m_nConclusionProportion = 50; // 结论占比%
int m_nShowPos = 0; // 显示位置(cm)
bool m_bShowLayerNo = true; // 显示层号
QFont m_layerFont; // 层号字体
float m_fLayerRotate = 0.0f; // 层号旋转
//录井剖面
bool m_bLithColor = true; // 岩性配色显示
bool m_bLithOne = true; // 单岩性显示
bool m_bShowOil = true; // 显示含油性
bool m_bCenterOil = false; // 含油性居中
bool m_bShowColor = false; // 显示颜色
bool m_bShowColorNum = false; // 绘制颜色号
double m_dOilZhan = 8; //含油占比
2026-03-16 18:09:26 +08:00
// 岩心照片
// 例区高度
int m_yxzpExampleAreaHeight;
// 标注字体
QFont m_yxzpLabelFont;
// 标注旋转
int m_yxzpLabelRotation;
// 两端绘制
bool m_yxzpTwoEndDrawing;
// 绘制颜色
bool m_yxzpDrawColor;
// 图片文件
QString m_yxzpPictureFile;
// 左边距
QString m_yxzpLeftMargin;
// 宽度
QString m_yxzpWidth;
// 线宽
QString m_yxzpLineWidth;
// 颜色
QString m_yxzpColor;
// 线型
QString m_yxzpLineshape;
//气测/FMT/射孔/文本
QStringList m_FieldNameList;
2025-10-29 17:23:30 +08:00
public:
void setLineWidth(double dWidth);
double getLineWidth();
void setLineStyle(Qt::PenStyle lineStyle);
Qt::PenStyle getLineStyle();
void setVMax(float vmax);
float getVMax();
void setVMin(float vmin);
float getVMin();
void setFrontColor(QColor frontColor);
QColor getFrontColor();
void setBackColor(QColor backColor);
QColor getBackColor();
bool setInfoProperty(QString strProName, QVariant val);
int getFillTypeIndex();
2025-10-29 17:23:30 +08:00
QJsonObject makeJson();
//右键菜单响应函数
virtual void contextMenuEvent(QContextMenuEvent *event);
2025-10-29 17:23:30 +08:00
private:
QPoint startPosition;
public slots:
//曲线数据查看
void onShowCurve();
//删除曲线
void onDeleteCurv();
//表格查看
void onShowTable();
//删除表格
void onDeleteTable();
2025-10-29 17:23:30 +08:00
};
2025-10-29 17:23:30 +08:00
#endif // FORMINFO_H