Compare commits
2 Commits
967a7c2495
...
dca3008d5d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dca3008d5d | ||
|
|
40be7bf16a |
|
|
@ -14,7 +14,7 @@ extern double g_dPixelPerCm;//每厘米像素数
|
|||
PropertyWidget::PropertyWidget(const QString &title, QWidget *parent , Qt::WindowFlags flags )
|
||||
:QDockWidget(title,parent,flags)
|
||||
{
|
||||
//
|
||||
//1
|
||||
m_pPropertyBrowser = new QtTreePropertyBrowser();
|
||||
this->setWidget(m_pPropertyBrowser);
|
||||
//
|
||||
|
|
@ -126,6 +126,128 @@ void PropertyWidget::CommonPropertyChanged( QtProperty *pProperty, const QVarian
|
|||
}
|
||||
}
|
||||
|
||||
void PropertyWidget::changedYxzpProperty(QtProperty *qtProperty, const QVariant &variant)
|
||||
{
|
||||
if("选择井曲线" == m_propertyData[qtProperty])
|
||||
{
|
||||
QString sFilePath = variant.value<QString>();
|
||||
if(sFilePath.indexOf("@")>-1)
|
||||
{
|
||||
int ind=sFilePath.indexOf("@");
|
||||
QString strLineName = sFilePath.left(ind);
|
||||
sFilePath=sFilePath.mid(ind+1);
|
||||
sFilePath.trimmed();
|
||||
//只支持以下名称
|
||||
if (strLineName == "GUJING1_RESULT" || strLineName == "GUJING2_RESULT" || strLineName == "GUJING3_RESULT")
|
||||
{
|
||||
QString strOldLineName = m_formInfo->m_strLineName;
|
||||
QString strOldSlfName = m_formInfo->m_strSlfName;
|
||||
//暂时不允许改变slf井次名称,不然不在同一口井绘制
|
||||
if(strOldSlfName != sFilePath)
|
||||
{
|
||||
QMessageBox::information(nullptr,"提示","不允许改变slf井次名称");
|
||||
return;
|
||||
}
|
||||
//名称不变
|
||||
if(strOldLineName == strLineName)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
m_formInfo->m_strLineName = strLineName;
|
||||
//m_formInfo->m_strSlfName = sFilePath;
|
||||
m_formInfo->update();
|
||||
|
||||
//改变固井曲线名
|
||||
emit CallManage::getInstance()->sig_changeGujingLine(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, strOldLineName, strLineName);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if("例区高度(cm)" == m_propertyData[qtProperty])
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void PropertyWidget::changedYxzpItemProperty(QtProperty *qtProperty, const QVariant &qVariant)
|
||||
{
|
||||
if("顶深(m)" == m_propertyData[qtProperty])
|
||||
{
|
||||
if(m_tdImage)
|
||||
{
|
||||
double upper = qVariant.value<double>();
|
||||
m_tdImage->setUpper(-upper);
|
||||
//保存
|
||||
m_tdImage->mPlot->SaveToSLFImage();
|
||||
}
|
||||
}
|
||||
else if("底深(m)" == m_propertyData[qtProperty])
|
||||
{
|
||||
if(m_tdImage)
|
||||
{
|
||||
double lower = qVariant.value<double>();
|
||||
m_tdImage->setLower(-lower);
|
||||
m_tdImage->mPlot->SaveToSLFImage();
|
||||
}
|
||||
}
|
||||
else if("图片文件" == m_propertyData[qtProperty])
|
||||
{
|
||||
if(m_tdImage)
|
||||
{
|
||||
QString pictureFile = qVariant.value<QString>();
|
||||
qDebug()<<pictureFile<<"-------------";
|
||||
// m_tdImage->setLower(-lower);
|
||||
m_tdImage->mPlot->SaveToSLFImage();
|
||||
}
|
||||
}
|
||||
else if("左边距%" == m_propertyData[qtProperty])
|
||||
{
|
||||
if(m_tdImage)
|
||||
{
|
||||
// int lower = qVariant.value<int>();
|
||||
// m_tdImage->setLower(-lower);
|
||||
m_tdImage->mPlot->SaveToSLFImage();
|
||||
}
|
||||
}
|
||||
else if("宽度%" == m_propertyData[qtProperty])
|
||||
{
|
||||
if(m_tdImage)
|
||||
{
|
||||
// double lower = qVariant.value<double>();
|
||||
// m_tdImage->setLower(-lower);
|
||||
m_tdImage->mPlot->SaveToSLFImage();
|
||||
}
|
||||
}
|
||||
else if("线宽" == m_propertyData[qtProperty])
|
||||
{
|
||||
if(m_tdImage)
|
||||
{
|
||||
// double lower = qVariant.value<double>();
|
||||
// m_tdImage->setLower(-lower);
|
||||
m_tdImage->mPlot->SaveToSLFImage();
|
||||
}
|
||||
}
|
||||
else if("颜色" == m_propertyData[qtProperty])
|
||||
{
|
||||
if(m_tdImage)
|
||||
{
|
||||
// double lower = qVariant.value<double>();
|
||||
// m_tdImage->setLower(-lower);
|
||||
m_tdImage->mPlot->SaveToSLFImage();
|
||||
}
|
||||
}
|
||||
else if("线型" == m_propertyData[qtProperty])
|
||||
{
|
||||
if(m_tdImage)
|
||||
{
|
||||
// double lower = qVariant.value<double>();
|
||||
// m_tdImage->setLower(-lower);
|
||||
m_tdImage->mPlot->SaveToSLFImage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant &variant )
|
||||
{
|
||||
if(m_strCurrentProperty == "")
|
||||
|
|
@ -279,6 +401,13 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (m_strCurrentProperty == Image_Property) // 岩心照片
|
||||
{
|
||||
// 先处理通用属性
|
||||
CommonPropertyChanged(pProperty, variant);
|
||||
changedYxzpProperty(pProperty, variant);
|
||||
|
||||
}
|
||||
else if (m_strCurrentProperty == SwallCore_Property)//井壁取心
|
||||
{
|
||||
//先处理通用属性
|
||||
|
|
@ -570,6 +699,12 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (m_strCurrentProperty == ImageItem_Property)
|
||||
{
|
||||
//先处理通用属性
|
||||
CommonPropertyChanged(pProperty, variant);
|
||||
changedYxzpItemProperty(pProperty, variant);
|
||||
}
|
||||
else if (m_strCurrentProperty == SwallCoreItem_Property)
|
||||
{
|
||||
//先处理通用属性
|
||||
|
|
@ -2187,6 +2322,11 @@ void PropertyWidget::initProperty(FormInfo *formInfo)
|
|||
//固井结论
|
||||
this->initGujingProperty(formInfo);
|
||||
}
|
||||
if (m_strLineName == "IMAGE_DATA")
|
||||
{
|
||||
// 岩心图片
|
||||
this->initImageProperty(formInfo);
|
||||
}
|
||||
else if (m_strLineName == "SWALL_CORE")
|
||||
{
|
||||
//井壁取心
|
||||
|
|
@ -2603,6 +2743,69 @@ void PropertyWidget::initGujingItemProperty(TransparentDraggableGujing* tdGujing
|
|||
_CreateVariantPropertyItem("当前项", "固井结论", strResult, VariantManager::filePathTypeId());
|
||||
}
|
||||
|
||||
void PropertyWidget::initImageProperty(FormInfo *formInfo)
|
||||
{
|
||||
_CreateVariantPropertyItem("通常", "选择井曲线", m_strLineName + "@" + m_strSlfName, QVariant::String);
|
||||
_CreateVariantPropertyItem("通常", "显示名称", formInfo->m_strAliasName, QVariant::String);
|
||||
_CreateVariantPropertyItem("通常", "例区高度(cm)", formInfo->m_yxzpExampleAreaHeight, QVariant::Int);
|
||||
_CreateVariantPropertyItem("通常", "垂向绘制", formInfo->m_bVerticaDrawing, QVariant::Bool);
|
||||
_CreateVariantPropertyItem("通常", "旋转角度(°)", formInfo->m_nRotationAngle, QVariant::Int);
|
||||
_CreateVariantPropertyItem("通常", "字体", formInfo->m_curveNameFont, QVariant::Font);
|
||||
_CreateVariantPropertyItem("通常", "颜色", formInfo->m_lineColor, QVariant::Color);
|
||||
|
||||
_CreateVariantPropertyItem("当前项", "标注字体", formInfo->m_yxzpLabelFont, QVariant::Font);
|
||||
_CreateVariantPropertyItem("当前项", "标注旋转", formInfo->m_yxzpLabelRotation, QVariant::Int);
|
||||
_CreateVariantPropertyItem("当前项", "两端绘制", formInfo->m_yxzpTwoEndDrawing, QVariant::Bool);
|
||||
_CreateVariantPropertyItem("当前项", "绘制颜色", formInfo->m_yxzpDrawColor, QVariant::Bool);
|
||||
|
||||
m_strCurrentProperty = Image_Property;
|
||||
}
|
||||
void PropertyWidget::initImageItemProperty(TransparentDraggableImage* tdImage, double lower, double upper, QString pictureFile)
|
||||
{
|
||||
//初始化,清空
|
||||
InitCurrentViewInfo();
|
||||
FormInfo* formInfo = tdImage->mPlot->m_formTrack->getFormInfoByParameters(tdImage->mPlot->m_strUuid, tdImage->mPlot->m_strWellName,
|
||||
tdImage->mPlot->m_strTrackName, tdImage->mPlot->m_strLineName);
|
||||
if (formInfo != NULL)
|
||||
{
|
||||
m_formInfo = formInfo;
|
||||
|
||||
m_strUuid = formInfo->m_strUuid;
|
||||
m_strTrackUuid = formInfo->m_strTrackUuid;
|
||||
//
|
||||
m_strSlfName = formInfo->m_strSlfName;
|
||||
m_strWellName = formInfo->m_strWellName;
|
||||
m_strTrackName = formInfo->m_strTrackName;
|
||||
m_strLineName = formInfo->m_strLineName;
|
||||
|
||||
_CreateVariantPropertyItem("通常", "选择井曲线", m_strLineName + "@" + m_strSlfName, QVariant::String);
|
||||
_CreateVariantPropertyItem("通常", "显示名称", formInfo->m_strAliasName, QVariant::String);
|
||||
_CreateVariantPropertyItem("通常", "例区高度(cm)", formInfo->m_yxzpExampleAreaHeight, QVariant::Int);
|
||||
_CreateVariantPropertyItem("通常", "垂向绘制", formInfo->m_bVerticaDrawing, QVariant::Bool);
|
||||
_CreateVariantPropertyItem("通常", "旋转角度(°)", formInfo->m_nRotationAngle, QVariant::Int);
|
||||
_CreateVariantPropertyItem("通常", "字体", formInfo->m_curveNameFont, QVariant::Font);
|
||||
_CreateVariantPropertyItem("通常", "颜色", formInfo->m_lineColor, QVariant::Color);
|
||||
|
||||
_CreateVariantPropertyItem("当前项", "标注字体", formInfo->m_yxzpLabelFont, QVariant::Font);
|
||||
_CreateVariantPropertyItem("当前项", "标注旋转", formInfo->m_yxzpLabelRotation, QVariant::Int);
|
||||
_CreateVariantPropertyItem("当前项", "两端绘制", formInfo->m_yxzpTwoEndDrawing, QVariant::Bool);
|
||||
_CreateVariantPropertyItem("当前项", "绘制颜色", formInfo->m_yxzpDrawColor, QVariant::Bool);
|
||||
_CreateVariantPropertyItem("当前项", "顶深(m)", -upper, QVariant::Double);
|
||||
_CreateVariantPropertyItem("当前项", "底深(m)", -lower, QVariant::Double);
|
||||
_CreateVariantPropertyItem("当前项", "图片文件", formInfo->m_yxzpPictureFile, VariantManager::filePathTypeId());
|
||||
_CreateVariantPropertyItem("当前项", "左边距%", formInfo->m_yxzpLeftMargin, QVariant::Int);
|
||||
_CreateVariantPropertyItem("当前项", "宽度%", formInfo->m_yxzpWidth, QVariant::Int);
|
||||
|
||||
_CreateVariantPropertyItem("边框属性", "线宽", formInfo->m_yxzpLineWidth, QVariant::Int);
|
||||
_CreateVariantPropertyItem("边框属性", "颜色", formInfo->m_yxzpColor, QVariant::Color);
|
||||
_CreateVariantPropertyItem("边框属性", "线型", formInfo->m_yxzpLineshape, QVariant::String);
|
||||
}
|
||||
|
||||
//当前属性类型
|
||||
m_strCurrentProperty = ImageItem_Property;
|
||||
m_tdImage = tdImage;
|
||||
}
|
||||
|
||||
void PropertyWidget::initGeoLithProperty(FormInfo *formInfo)
|
||||
{
|
||||
_CreateVariantPropertyItem("通常", "选择井曲线", m_strLineName + "@" + m_strSlfName, QVariant::String);
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
#include "qmytablewidget.h"
|
||||
#include "formtracktop.h"
|
||||
#include "TransparentDraggableGujing.h"
|
||||
#include "transparentdraggableimage.h"
|
||||
#include "TransparentDraggableSwallCore.h"
|
||||
#include "TransparentDraggableGeoLith.h"
|
||||
#include "TransparentDraggableRect.h"
|
||||
|
|
@ -43,6 +44,9 @@
|
|||
#define Gujing_Property "Gujing_Property" //固井结论
|
||||
#define GujingItem_Property "GujingItem_Property" //固井item
|
||||
|
||||
#define Image_Property "Image_Property" // 岩心图片
|
||||
#define ImageItem_Property "ImageItem_Property" // 岩心图片item
|
||||
|
||||
#define SwallCore_Property "SwallCore_Property" //井壁取心
|
||||
#define SwallCoreItem_Property "SwallCoreItem_Property" //井壁取心item
|
||||
|
||||
|
|
@ -126,7 +130,8 @@ public:
|
|||
|
||||
TransparentGroupResult* m_tdJieshi;
|
||||
//
|
||||
TransparentDraggableGujing* m_tdGujing;
|
||||
TransparentDraggableGujing* m_tdGujing;
|
||||
TransparentDraggableImage* m_tdImage;
|
||||
TransparentDraggableSwallCore* m_tdSwallCore;
|
||||
TransparentDraggableGeoLith* m_tdGeoLith;
|
||||
TransparentDraggableRect* m_tdText;
|
||||
|
|
@ -170,6 +175,10 @@ public:
|
|||
void initGujingProperty(FormInfo *formInfo);
|
||||
void initGujingItemProperty(TransparentDraggableGujing* tdGujing, double lower, double upper, QString strResult);
|
||||
|
||||
// 岩心照片属性
|
||||
void initImageProperty(FormInfo *formInfo);
|
||||
void initImageItemProperty(TransparentDraggableImage* tdImage, 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);
|
||||
|
|
@ -199,6 +208,9 @@ public:
|
|||
//处理通用属性
|
||||
void CommonPropertyChanged(QtProperty *pProperty, const QVariant &variant);
|
||||
|
||||
void changedYxzpProperty(QtProperty *pProperty, const QVariant &variant);
|
||||
void changedYxzpItemProperty(QtProperty *pProperty, const QVariant &variant);
|
||||
|
||||
public slots:
|
||||
void SlotPropertyChanged(QtProperty *property, const QVariant &variant);
|
||||
void SlotPropertyChanged(QtProperty *property, const int &val, bool islinestyle);
|
||||
|
|
|
|||
|
|
@ -154,6 +154,30 @@ public:
|
|||
bool m_bShowColorNum = false; // 绘制颜色号
|
||||
double m_dOilZhan = 8; //含油占比
|
||||
|
||||
// 岩心照片
|
||||
// 例区高度
|
||||
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;
|
||||
|
||||
|
|
|
|||
|
|
@ -1728,7 +1728,7 @@ void QMyCustomPlot::onEditImage()
|
|||
this->addImageToPlot(left_Low, right_Hight, imagePath);
|
||||
|
||||
//保存
|
||||
this->SaveToSLFImage(imagePath);
|
||||
this->SaveToSLFImage();
|
||||
|
||||
//属性清空
|
||||
PropertyService()->InitCurrentViewInfo();
|
||||
|
|
@ -2647,7 +2647,7 @@ bool QMyCustomPlot::SaveToSLF_Gujing()
|
|||
}
|
||||
|
||||
//保存岩心图片
|
||||
bool QMyCustomPlot::SaveToSLFImage(QString imagePath)
|
||||
bool QMyCustomPlot::SaveToSLFImage()
|
||||
{
|
||||
static int isrun=false;
|
||||
if(isrun) return false;
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ public:
|
|||
|
||||
// 岩心图片
|
||||
QMap<QString,QString> zoneOrderImage;
|
||||
bool SaveToSLFImage(QString imagePath);
|
||||
bool SaveToSLFImage();
|
||||
|
||||
//井壁取心
|
||||
QStringList liths_SWallCore;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "transparentdraggableimage.h"
|
||||
#include "PropertyWidget.h"
|
||||
|
||||
|
||||
extern double g_dPixelPerCm;//每厘米像素数
|
||||
|
|
@ -339,17 +340,19 @@ void TransparentDraggableImage::onMousePress(QMouseEvent *event)
|
|||
}
|
||||
|
||||
//event->accept();
|
||||
// 显示属性
|
||||
double low = mRect->topLeft->coords().x();
|
||||
double hight = mRect->bottomRight->coords().x();
|
||||
PropertyService()->initImageItemProperty(this, low, hight, m_Result);
|
||||
|
||||
QMenu menu(nullptr);
|
||||
QAction *delAction = menu.addAction("删除框图");
|
||||
//delAction->installEventFilter(this);
|
||||
connect(delAction, &QAction::triggered, this, &TransparentDraggableImage::onDelRect);
|
||||
|
||||
// QAction* pItem = menu.exec(event->globalPos());
|
||||
// if(pItem == delAction)
|
||||
// {
|
||||
// //event->accept();
|
||||
|
||||
// int ii=0;
|
||||
// ii++;
|
||||
// }
|
||||
|
|
@ -491,6 +494,12 @@ void TransparentDraggableImage::onMouseRelease(QMouseEvent *event)
|
|||
{
|
||||
if(event->button() == Qt::LeftButton && mDragMode != DragNone) {
|
||||
event->accept();
|
||||
// 显示属性
|
||||
double low = mRect->topLeft->coords().x();
|
||||
double hight = mRect->bottomRight->coords().x();
|
||||
PropertyService()->initImageItemProperty(this, low, hight, m_Result);
|
||||
|
||||
|
||||
//避免二次绘制框图
|
||||
mPlot->m_bDrawRect = false;
|
||||
//emit rangeChanged(getRange());
|
||||
|
|
@ -564,3 +573,46 @@ double TransparentDraggableImage::getMyUpper()
|
|||
|
||||
return dUpper;
|
||||
}
|
||||
|
||||
//设置顶深
|
||||
void TransparentDraggableImage::setUpper(double upper)
|
||||
{
|
||||
QCPRange currentRange = getRange();
|
||||
QCPRange newRange = currentRange;
|
||||
|
||||
double proposedRight = upper;
|
||||
// 确保不超出轴范围且不使宽度小于最小值
|
||||
newRange.upper = qBound(
|
||||
currentRange.lower + mMinWidth,
|
||||
proposedRight,
|
||||
getMyUpper());
|
||||
|
||||
// 最终确保宽度不小于最小值(针对整体拖动的情况)
|
||||
if(newRange.size() < mMinWidth) {
|
||||
newRange.upper = newRange.lower + mMinWidth;
|
||||
}
|
||||
|
||||
setRange(newRange.lower, newRange.upper);
|
||||
}
|
||||
|
||||
//设置底深
|
||||
void TransparentDraggableImage::setLower(double lower)
|
||||
{
|
||||
QCPRange currentRange = getRange();
|
||||
QCPRange newRange = currentRange;
|
||||
|
||||
double proposedLeft = lower;
|
||||
// 确保不超出轴范围且不使宽度小于最小值
|
||||
newRange.lower = qBound(
|
||||
getMyLower(),
|
||||
proposedLeft,
|
||||
currentRange.upper - mMinWidth);
|
||||
|
||||
// 最终确保宽度不小于最小值(针对整体拖动的情况)
|
||||
if(newRange.size() < mMinWidth) {
|
||||
// 如果是边界拖动,强制设置最小宽度
|
||||
newRange.lower = newRange.upper - mMinWidth;
|
||||
}
|
||||
|
||||
setRange(newRange.lower, newRange.upper);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ class TransparentDraggableImage : public QObject
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QMyCustomPlot *mPlot;
|
||||
|
||||
explicit TransparentDraggableImage(QMyCustomPlot *parentPlot, QString strUuid="", double minWidth = 1.0, QString strTitle = "");
|
||||
|
||||
|
||||
|
|
@ -46,6 +48,9 @@ public:
|
|||
// 删除框图
|
||||
void deleteRect();
|
||||
|
||||
void setUpper(double upper);
|
||||
void setLower(double lower);
|
||||
|
||||
signals:
|
||||
void rangeChanged(QCPRange newRange);
|
||||
|
||||
|
|
@ -62,7 +67,7 @@ private slots:
|
|||
double getMyUpper();
|
||||
|
||||
private:
|
||||
QMyCustomPlot *mPlot;
|
||||
|
||||
QCPItemRect *mRect;
|
||||
QCPItemRect *mLeftHandle;
|
||||
QCPItemRect *mRightHandle;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user