logplus/logPlus/PropertyWidget.h

159 lines
5.1 KiB
C
Raw Normal View History

2025-10-29 17:23:30 +08:00
/**
* @file PropertyWidget.h
* @brief singleton模式
* @date 2025-10-10
* @author:
*/
#pragma once
#include <QDockWidget>
#include <QTableWidget>
2025-10-29 17:23:30 +08:00
#include "qtpropertybrowser.h"
#include "qtvariantproperty.h"
#include "qttreepropertybrowser.h"
//file
#include "variantmanager.h"
#include "variantfactory.h"
#include "ColorSchemeComboBox.h"
2025-10-29 17:23:30 +08:00
//
#include "forminfo.h"
#include "formhead.h"
2026-01-23 14:53:34 +08:00
#include "qmytablewidget.h"
#include "formtracktop.h"
#include "TransparentDraggableGujing.h"
#include "TransparentDraggableSwallCore.h"
2025-10-29 17:23:30 +08:00
//当前曲线类型
#define Widget_Property "Widget_Property"
2026-01-23 14:53:34 +08:00
#define Well_Property "Well_Property" //井
#define Track_Property "Track_Property" //道
#define Curve_Property "Curve_Property" //曲线
#define Wave_Property "Wave_Property" //波列
#define Table_Property "Table_Property" //解释结论
2026-01-23 14:53:34 +08:00
#define Head_Property "Head_Property" //图头,单元格
2025-10-29 17:23:30 +08:00
#define Gujing_Property "Gujing_Property" //固井结论
#define GujingItem_Property "GujingItem_Property" //固井item
#define SwallCore_Property "SwallCore_Property" //井壁取心
#define SwallCoreItem_Property "SwallCoreItem_Property" //井壁取心item
2025-10-29 17:23:30 +08:00
#pragma execution_character_set("utf-8")
/**
* @class PropertyWidget
* @brief
* @date 2025-10-10
* @author:
*/
class PropertyWidget:public QDockWidget
{
Q_OBJECT
public:
PropertyWidget(const QString &title, QWidget *parent = 0, Qt::WindowFlags flags = 0);
~PropertyWidget();
private:
QtTreePropertyBrowser *m_pPropertyBrowser;
QtVariantPropertyManager *m_pVariantManager;
QtColorSchemeComboBoxPropertyManager * m_pColorSchemeManager;
2025-10-29 17:23:30 +08:00
public:
2025-10-30 11:55:37 +08:00
QString m_strUuid;
2025-10-29 17:23:30 +08:00
QString m_strSlfName;
QString m_strWellName;
QString m_strTrackName;
QString m_strLineName;
2026-01-23 18:20:18 +08:00
int m_iScale=200;
double m_iY1=0;
double m_iY2=0;
2025-10-29 17:23:30 +08:00
QString m_strCurrentProperty;
QMap<QtProperty*, QString> m_propertyData; //属性页值
//静态属性
QMap<QString, QtProperty*> m_mapGroupItem;
//其他曲线
QStringList m_strListOtherLine;
QList<float> m_listMin;
QList<float> m_listMax;
2025-11-05 18:15:33 +08:00
QStringList m_strListOtherScaleType;
2025-10-29 17:23:30 +08:00
FormTrackTop* m_fromTop = NULL;
FormInfo * m_formInfo = NULL;
//图头
FormHead *m_formHead;
QTableWidget *m_tableWidget;
QTableWidgetItem* m_item;
int m_iRow;
int m_iCol;
//图头, 图例宽高
double m_colWidth_Img = 1;
double m_rowHeight_Img = 1;
//图头, 行高、列宽
double m_colWidth = 1;
double m_rowHeight = 1;
2026-01-23 14:53:34 +08:00
//道
QMyTableWidget *m_myTableWidget;
int m_iCurrentCol;
bool m_bSelfChange=false;
//
TransparentDraggableGujing* m_tdGujing;
TransparentDraggableSwallCore* m_tdSwallCore;
2025-10-29 17:23:30 +08:00
public:
QWidget* GetPropertyWidget();
void _CreateVariantPropertyItem(QString strGroup, QString strPropertyCaption, QVariant vtPropertyValue, int propertyType);
void _CreateVariantPropertyItem(QString strGroup, QString strPropertyCaption, QVariant vtPropertyValue, int propertyType, double dMin, double dMax);
void _CreateEnumPropertyItem(QString strGroup, QString strPropertyCaption, QVariant vtPropertyValue, QStringList listValue);
void _CreateColorSchemePropertyItem(QString strGroup, QString strPropertyCaption, QVariant vtPropertyValue);
void InitCurrentViewInfo(bool bAll = true); //初始化属性,清空
2026-01-23 18:20:18 +08:00
void initWidgetProperty(QString strUuid, int iScale); //可视解释整体属性
//井
2026-01-23 18:20:18 +08:00
void initWellProperty(QString strUuid, QString strSlfName, QString strWellName, double iY1, double iY2);
2026-01-23 14:53:34 +08:00
//道
void initTrackProperty(FormTrackTop *fromTop, int iWidth, QMyTableWidget *myTableWidget, int iCurrentCol);
//曲线
2025-11-05 18:15:33 +08:00
void initCurveProperty(FormInfo *formInfo, QStringList strListOtherLine, QList<float> listMin, QList<float> listMax, QStringList strListOtherScaleType);
//图头
void initHeadProperty(FormHead *formHead, QTableWidget *tableWidget, QTableWidgetItem* item, int row, int col);
2025-10-29 17:23:30 +08:00
void initTableProperty(FormInfo *formInfo);
void initDepthProperty(FormInfo *formInfo);
void initProperty(FormInfo *formInfo);
// 玫瑰图属性
void initRoseProperty(FormInfo *formInfo);
// 波列属性
void initWaveProperty(FormInfo *formInfo, int nType = 3);
// 固井结论属性
void initGujingProperty(FormInfo *formInfo);
void initGujingItemProperty(TransparentDraggableGujing* tdGujing, double lower, double upper, QString strResult);
// 井壁取心属性
void initSwallCoreProperty(FormInfo *formInfo);
void initSwallCoreItemProperty(TransparentDraggableSwallCore* tdSwallCore, double Depth, QString LithologyImage, QString OilGasImage, QString ColorImage, double Sideleft, double width, int iColor);
2025-10-29 17:23:30 +08:00
void ChangFillProperty();//填充属性改变
void ChangHeadItemProperty();//图头项改变
//处理通用属性
void CommonPropertyChanged(QtProperty *pProperty, const QVariant &variant);
2025-10-29 17:23:30 +08:00
public slots:
void SlotPropertyChanged(QtProperty *property, const QVariant &variant);
void SlotPropertyChanged(QtProperty *property, const int &val, bool islinestyle);
2025-10-29 17:23:30 +08:00
};
extern PropertyWidget* PropertyService();