频率统计图 属性
This commit is contained in:
parent
c71fec5b2c
commit
10aa078bc2
|
|
@ -4068,49 +4068,49 @@ void PropertyWidget::initPlObjectProperty(FormInfo *formInfo)
|
||||||
|
|
||||||
_CreateVariantPropertyItem("字体", "名称", formInfo->m_strAliasNameFont, QVariant::Font);
|
_CreateVariantPropertyItem("字体", "名称", formInfo->m_strAliasNameFont, QVariant::Font);
|
||||||
_CreateVariantPropertyItem("字体", "单位", formInfo->m_strUnitFont, QVariant::Font);
|
_CreateVariantPropertyItem("字体", "单位", formInfo->m_strUnitFont, QVariant::Font);
|
||||||
_CreateVariantPropertyItem("字体", "刻度", formInfo->m_strAliasName, QVariant::Font);
|
_CreateVariantPropertyItem("字体", "刻度", formInfo->m_pl_fontScale, QVariant::Font);
|
||||||
_CreateVariantPropertyItem("字体", "曲线名称", formInfo->m_strAliasName, QVariant::Font);
|
_CreateVariantPropertyItem("字体", "曲线名称", formInfo->m_strAliasNameFont, QVariant::Font);
|
||||||
|
|
||||||
_CreateVariantPropertyItem("控制曲线", "曲线名", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("控制曲线", "曲线名", formInfo->m_pl_controlCurveName, QVariant::String);
|
||||||
_CreateVariantPropertyItem("控制曲线", "最小值", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("控制曲线", "最小值", formInfo->m_pl_controlMinValue, QVariant::Int);
|
||||||
_CreateVariantPropertyItem("控制曲线", "最大值", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("控制曲线", "最大值", formInfo->m_pl_controlMaxValue, QVariant::Int);
|
||||||
|
|
||||||
_CreateVariantPropertyItem("方位频率", "扇形", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("方位频率", "扇形", formInfo->m_pl_sectorCount, QVariant::Int);
|
||||||
_CreateVariantPropertyItem("方位频率", "圆半径(cm)", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("方位频率", "圆半径", formInfo->m_pl_circleRadius, QVariant::Int);
|
||||||
_CreateVariantPropertyItem("方位频率", "圆线颜色", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("方位频率", "圆线颜色", formInfo->m_pl_circleColor, QVariant::Color);
|
||||||
_CreateVariantPropertyItem("方位频率", "圆线宽度", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("方位频率", "圆线宽度", formInfo->m_pl_circleLineWidth, QVariant::Int);
|
||||||
_CreateVariantPropertyItem("方位频率", "是否填充", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("方位频率", "是否填充", formInfo->m_pl_isFillEnabled, QVariant::Bool);
|
||||||
_CreateVariantPropertyItem("方位频率", "填充颜色", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("方位频率", "填充颜色", formInfo->m_pl_fillColor, QVariant::Color);
|
||||||
|
|
||||||
_CreateVariantPropertyItem("倾角频率", "线数", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("倾角频率", "线数", formInfo->m_pl_lineNumber, QVariant::Int);
|
||||||
_CreateVariantPropertyItem("倾角频率", "统计线高度(cm)", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("倾角频率", "统计线高度", formInfo->m_pl_lineHeight, QVariant::Double);
|
||||||
_CreateVariantPropertyItem("倾角频率", "线粗细", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("倾角频率", "线粗细", formInfo->m_pl_lineThickness, QVariant::Int);
|
||||||
_CreateVariantPropertyItem("倾角频率", "线颜色", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("倾角频率", "线颜色", formInfo->m_pl_lineColor, QVariant::Color);
|
||||||
_CreateVariantPropertyItem("倾角频率", "是否绘制标注?", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("倾角频率", "是否绘制标注?", formInfo->m_pl_drawAnnotation, QVariant::Bool);
|
||||||
_CreateVariantPropertyItem("倾角频率", "绘制直方图?", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("倾角频率", "绘制直方图?", formInfo->m_pl_drawHistogram, QVariant::Bool);
|
||||||
|
|
||||||
_CreateVariantPropertyItem("基线", "宽度", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("基线", "宽度", formInfo->m_pl_baselineWidth, QVariant::Int);
|
||||||
_CreateVariantPropertyItem("基线", "颜色", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("基线", "颜色", formInfo->m_pl_baselineColor, QVariant::Color);
|
||||||
|
|
||||||
_CreateVariantPropertyItem("统计参数", "统计间隔", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("统计参数", "统计间隔", formInfo->m_pl_statInterval, QVariant::Int);
|
||||||
_CreateVariantPropertyItem("统计参数", "最小倾角", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("统计参数", "最小倾角", formInfo->m_pl_minInclination, QVariant::Double);
|
||||||
_CreateVariantPropertyItem("统计参数", "最大倾角", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("统计参数", "最大倾角", formInfo->m_pl_maxInclination, QVariant::Double);
|
||||||
|
|
||||||
_CreateVariantPropertyItem("分类", "高导缝", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("分类", "高导缝", formInfo->m_pl_highGap, QVariant::Bool);
|
||||||
_CreateVariantPropertyItem("分类", "高阻缝", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("分类", "高阻缝", formInfo->m_pl_highReservoir, QVariant::Bool);
|
||||||
_CreateVariantPropertyItem("分类", "网状缝", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("分类", "网状缝", formInfo->m_pl_reticularFracture, QVariant::Bool);
|
||||||
_CreateVariantPropertyItem("分类", "诱导缝", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("分类", "诱导缝", formInfo->m_pl_inducedFracture, QVariant::Bool);
|
||||||
_CreateVariantPropertyItem("分类", "层理", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("分类", "层理", formInfo->m_pl_bedLayer, QVariant::Bool);
|
||||||
_CreateVariantPropertyItem("分类", "侵蚀面", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("分类", "侵蚀面", formInfo->m_pl_erosionSurface, QVariant::Bool);
|
||||||
_CreateVariantPropertyItem("分类", "孔洞", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("分类", "孔洞", formInfo->m_pl_pore, QVariant::Bool);
|
||||||
_CreateVariantPropertyItem("分类", "气孔", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("分类", "气孔", formInfo->m_pl_vesicle, QVariant::Bool);
|
||||||
_CreateVariantPropertyItem("分类", "砾石", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("分类", "砾石", formInfo->m_pl_gravel, QVariant::Bool);
|
||||||
_CreateVariantPropertyItem("分类", "结核", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("分类", "结核", formInfo->m_pl_nodule, QVariant::Bool);
|
||||||
_CreateVariantPropertyItem("分类", "团块", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("分类", "团块", formInfo->m_pl_lumps, QVariant::Bool);
|
||||||
_CreateVariantPropertyItem("分类", "断层", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("分类", "断层", formInfo->m_pl_fault, QVariant::Bool);
|
||||||
_CreateVariantPropertyItem("分类", "垂直缝", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("分类", "垂直缝", formInfo->m_pl_verticalFracture, QVariant::Bool);
|
||||||
_CreateVariantPropertyItem("分类", "自定义1", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("分类", "自定义1", formInfo->m_pl_custom1, QVariant::Bool);
|
||||||
_CreateVariantPropertyItem("分类", "自定义2", formInfo->m_strAliasName, QVariant::String);
|
_CreateVariantPropertyItem("分类", "自定义2", formInfo->m_pl_custom2, QVariant::Bool);
|
||||||
|
|
||||||
m_strCurrentProperty = PL_OBJECT_PROPERTY;
|
m_strCurrentProperty = PL_OBJECT_PROPERTY;
|
||||||
}
|
}
|
||||||
|
|
@ -4133,7 +4133,7 @@ void PropertyWidget::changedPlObjectProperty(QString strProperty, QVariant varVa
|
||||||
this->m_formInfo->m_headHeight = temp;
|
this->m_formInfo->m_headHeight = temp;
|
||||||
this->m_formInfo->setFixedHeight(temp);
|
this->m_formInfo->setFixedHeight(temp);
|
||||||
}
|
}
|
||||||
else if ("名称" == strProperty)
|
else if ("名称" == strProperty || "曲线名称" == strProperty)
|
||||||
{
|
{
|
||||||
QFont newFont = varVal.value<QFont>();
|
QFont newFont = varVal.value<QFont>();
|
||||||
this->m_formInfo->m_strAliasNameFont = newFont;
|
this->m_formInfo->m_strAliasNameFont = newFont;
|
||||||
|
|
@ -4145,7 +4145,152 @@ void PropertyWidget::changedPlObjectProperty(QString strProperty, QVariant varVa
|
||||||
this->m_formInfo->m_strUnitFont = temp;
|
this->m_formInfo->m_strUnitFont = temp;
|
||||||
this->m_formInfo->repaint();
|
this->m_formInfo->repaint();
|
||||||
}
|
}
|
||||||
|
else if ("刻度" == strProperty)
|
||||||
|
{
|
||||||
|
QFont temp = varVal.value<QFont>();
|
||||||
|
this->m_formInfo->m_pl_fontScale = temp;
|
||||||
|
this->m_formInfo->repaint();
|
||||||
|
}
|
||||||
|
else if ("曲线名" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_controlCurveName = varVal.toString();
|
||||||
|
}
|
||||||
|
else if ("最小值" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_controlMinValue = varVal.toDouble();
|
||||||
|
}
|
||||||
|
else if ("最大值" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_controlMaxValue = varVal.toDouble();
|
||||||
|
}
|
||||||
|
else if ("扇形" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_sectorCount = varVal.toInt();
|
||||||
|
}
|
||||||
|
else if ("圆半径(cm)" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_circleRadius = varVal.toInt();
|
||||||
|
}
|
||||||
|
else if ("圆线颜色" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_circleColor = varVal.value<QColor>();
|
||||||
|
}
|
||||||
|
else if ("圆线宽度" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_circleLineWidth = varVal.toInt();
|
||||||
|
}
|
||||||
|
else if ("是否填充" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_isFillEnabled = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("填充颜色" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_fillColor = varVal.value<QColor>();
|
||||||
|
}
|
||||||
|
else if ("线数" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_lineNumber = varVal.toInt();
|
||||||
|
}
|
||||||
|
else if ("统计线高度" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_lineHeight = varVal.toDouble();
|
||||||
|
}
|
||||||
|
else if ("线粗细" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_lineThickness = varVal.toInt();
|
||||||
|
}
|
||||||
|
else if ("线颜色" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_lineColor = varVal.value<QColor>();
|
||||||
|
}
|
||||||
|
else if ("是否绘制标注?" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_drawAnnotation = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("绘制直方图?" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_drawHistogram = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("宽度" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_baselineWidth = varVal.toInt();
|
||||||
|
}
|
||||||
|
else if ("颜色" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_baselineColor = varVal.value<QColor>();
|
||||||
|
}
|
||||||
|
else if ("统计间隔" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_statInterval = varVal.toInt();
|
||||||
|
}
|
||||||
|
else if ("最小倾角" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_minInclination = varVal.toDouble();
|
||||||
|
}
|
||||||
|
else if ("最大倾角" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_maxInclination = varVal.toDouble();
|
||||||
|
}
|
||||||
|
else if ("高导缝" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_highGap = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("高阻缝" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_highReservoir = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("网状缝" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_reticularFracture = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("诱导缝" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_inducedFracture = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("层理" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_bedLayer = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("侵蚀面" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_erosionSurface = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("孔洞" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_pore = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("气孔" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_vesicle = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("砾石" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_gravel = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("结核" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_nodule = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("团块" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_lumps = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("断层" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_fault = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("垂直缝" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_verticalFracture = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("自定义1" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_custom1 = varVal.toBool();
|
||||||
|
}
|
||||||
|
else if ("自定义2" == strProperty)
|
||||||
|
{
|
||||||
|
this->m_formInfo->m_pl_custom2 = varVal.toBool();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropertyWidget::changedDepthProperty(QString strProperty, QVariant varVal)
|
void PropertyWidget::changedDepthProperty(QString strProperty, QVariant varVal)
|
||||||
|
|
|
||||||
|
|
@ -186,15 +186,15 @@ void FormDraw::setDrawData(QStringList listdt, QJsonObject objInfo)
|
||||||
// 深度
|
// 深度
|
||||||
else if("depthObject" == strType)
|
else if("depthObject" == strType)
|
||||||
{
|
{
|
||||||
// 在s_addDepth方法设置单位无效
|
initDepth(curv);
|
||||||
|
|
||||||
|
// 在s_addDepth方法设置单位无效
|
||||||
// 读取json
|
// 读取json
|
||||||
// 设置左侧显示属性 设置界面样式
|
// 设置左侧显示属性 设置界面样式
|
||||||
if(pInfo->m_strUnit.isEmpty()){
|
if(pInfo->m_strUnit.isEmpty()){
|
||||||
pInfo->m_strUnit = "(米)";
|
pInfo->m_strUnit = "(米)";
|
||||||
pInfo->m_strUnitFont = QFont("微软雅黑", 8);
|
pInfo->m_strUnitFont = QFont("微软雅黑", 8);
|
||||||
}
|
}
|
||||||
initDepth(curv);
|
|
||||||
// 读json后 重新设置样式
|
// 读json后 重新设置样式
|
||||||
// 头部高度
|
// 头部高度
|
||||||
pInfo->setFixedHeight(pInfo->m_headHeight);
|
pInfo->setFixedHeight(pInfo->m_headHeight);
|
||||||
|
|
@ -474,6 +474,11 @@ void FormDraw::DisplayLines(QJsonArray linesArray)
|
||||||
// 斜井三图一表属性
|
// 斜井三图一表属性
|
||||||
DisplayTvd_One(lineObjInfo);
|
DisplayTvd_One(lineObjInfo);
|
||||||
}
|
}
|
||||||
|
else if (strType == "plObject")
|
||||||
|
{
|
||||||
|
// 斜井三图一表属性
|
||||||
|
displayPlObject(lineObjInfo);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DisplayType_One(lineObjInfo);
|
DisplayType_One(lineObjInfo);
|
||||||
|
|
@ -484,6 +489,11 @@ void FormDraw::DisplayLines(QJsonArray linesArray)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FormDraw::displayPlObject(QJsonObject objInfo)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// 深度
|
// 深度
|
||||||
void FormDraw::DisplayDepth_One(QJsonObject objInfo)
|
void FormDraw::DisplayDepth_One(QJsonObject objInfo)
|
||||||
{
|
{
|
||||||
|
|
@ -5901,6 +5911,11 @@ void FormDraw::initDepth(QMyCustomPlot *curv)
|
||||||
|
|
||||||
void FormDraw::initFgrq(QMyCustomPlot *widget)
|
void FormDraw::initFgrq(QMyCustomPlot *widget)
|
||||||
{
|
{
|
||||||
|
// x轴隐藏
|
||||||
|
widget->xAxis->setTicks(false);
|
||||||
|
widget->xAxis->setSubTicks(false);
|
||||||
|
widget->xAxis->setTickLabels(false);
|
||||||
|
|
||||||
widget->m_iX1 = 0;
|
widget->m_iX1 = 0;
|
||||||
widget->m_iX2 = 1024;
|
widget->m_iX2 = 1024;
|
||||||
widget->m_iY1 = m_iY1;
|
widget->m_iY1 = m_iY1;
|
||||||
|
|
@ -5915,6 +5930,13 @@ void FormDraw::initFgrq(QMyCustomPlot *widget)
|
||||||
widget->xAxis = yAxis;
|
widget->xAxis = yAxis;
|
||||||
widget->yAxis = xAxis;
|
widget->yAxis = xAxis;
|
||||||
|
|
||||||
|
this->fgrqDraw(widget);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FormDraw::fgrqDraw(QMyCustomPlot *widget)
|
||||||
|
{
|
||||||
|
// widget->clearGraphs();
|
||||||
|
// widget->clearItems();
|
||||||
|
|
||||||
// if(m_Value == NULL)
|
// if(m_Value == NULL)
|
||||||
{
|
{
|
||||||
|
|
@ -6156,9 +6178,9 @@ void FormDraw::initFgrq(QMyCustomPlot *widget)
|
||||||
|
|
||||||
flDep += nstep;
|
flDep += nstep;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void FormDraw::initRose(QMyCustomPlot *widget)
|
void FormDraw::initRose(QMyCustomPlot *widget)
|
||||||
{
|
{
|
||||||
widget->m_iX1 = 0;
|
widget->m_iX1 = 0;
|
||||||
|
|
@ -6977,86 +6999,6 @@ void FormDraw::initCorePhysics(QMyCustomPlot *widget, QString strSlfName, QStrin
|
||||||
|
|
||||||
QVector<double> x, y;
|
QVector<double> x, y;
|
||||||
|
|
||||||
|
|
||||||
// // 加载slf文件 开始
|
|
||||||
// QVector<double> x, y;
|
|
||||||
// Slf_CORE_PHYSICS *m_pResult=NULL;
|
|
||||||
// CMemRdWt *logio=new CMemRdWt();
|
|
||||||
// if(strSlfName==""||!logio->Open(strSlfName.toStdString().c_str(),CSlfIO::modeRead))
|
|
||||||
// {
|
|
||||||
// delete logio;
|
|
||||||
// // QMessageBox::information(NULL,"提示","SLF文件打开失败,请检查!!",QMessageBox::Yes);
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// int iIndex=logio->OpenTable(strLineName.toStdString().c_str());
|
|
||||||
// if(iIndex>-1) {
|
|
||||||
// int FieldNo=0;
|
|
||||||
// int count=logio->GetTableRecordCount(iIndex);
|
|
||||||
|
|
||||||
// QString FieldName = "AC";
|
|
||||||
|
|
||||||
// if(!FieldName.isEmpty()) {
|
|
||||||
// static int err=0;
|
|
||||||
// FieldNo=logio->GetTableFieldNo(iIndex,(char *)FieldName.toStdString().c_str());
|
|
||||||
// if(FieldNo<0) {
|
|
||||||
// if(!err)QMessageBox::information(nullptr, "提示", "岩心试验数据模块初始加载数据不成功,因为隐含"+FieldName+"字段在实际数据表中不存在,稍后请您重新选择有效字段!");
|
|
||||||
// err++;
|
|
||||||
// delete logio;
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// else err=0;
|
|
||||||
// }
|
|
||||||
// else {
|
|
||||||
// delete logio;
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// int len=logio->GetTableRecordLength(iIndex);
|
|
||||||
// m_pResult=(Slf_CORE_PHYSICS *)new char[len+1];
|
|
||||||
// char buf[100];
|
|
||||||
// for(int i=0;i<count;i++) {
|
|
||||||
// logio->GetTableFieldData(iIndex,1,buf,i+1);
|
|
||||||
// sscanf(buf,"%f",&m_pResult->Depth);
|
|
||||||
// logio->GetTableFieldData(iIndex,2,buf,i+1);
|
|
||||||
// sscanf(buf,"%f",&m_pResult->CorrDepth);
|
|
||||||
// // logio->ReadTable(iIndex,i+1,m_pResult);
|
|
||||||
|
|
||||||
// int Order = m_pResult->Order;
|
|
||||||
// float depth = m_pResult->Depth;
|
|
||||||
// float CorrDepth = m_pResult->CorrDepth;
|
|
||||||
// float CoreValue = m_pResult->CoreValue;
|
|
||||||
// logio->GetTableFieldData(iIndex,FieldNo,buf,i+1);
|
|
||||||
|
|
||||||
// CoreValue=0;
|
|
||||||
// sscanf(buf,"%f",&CoreValue);
|
|
||||||
// //
|
|
||||||
|
|
||||||
// if(i==0)
|
|
||||||
// {
|
|
||||||
// //最大值,最小值默认采用第一个有效值
|
|
||||||
// //vmax = vmin = CoreValue;
|
|
||||||
|
|
||||||
// //默认采用0-100范围
|
|
||||||
// if(vmax<CoreValue)vmax=CoreValue;
|
|
||||||
// if(vmin>CoreValue)vmin=CoreValue;
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// //
|
|
||||||
// if(vmax<CoreValue)vmax=CoreValue;
|
|
||||||
// if(vmin>CoreValue)vmin=CoreValue;
|
|
||||||
// }
|
|
||||||
// //
|
|
||||||
// x.append(-CorrDepth);
|
|
||||||
// y.append(CoreValue);
|
|
||||||
// // 已经加载了slf文件内容 显示界面上
|
|
||||||
// widget->addCorePhysicsWithParam(Order, static_cast<double>(-depth), static_cast<double>(-CorrDepth), static_cast<double>(-CoreValue));
|
|
||||||
// }
|
|
||||||
// logio->CloseTable(iIndex);
|
|
||||||
// delete m_pResult;
|
|
||||||
// }
|
|
||||||
// delete logio;
|
|
||||||
// // 加载slf文件结束
|
|
||||||
|
|
||||||
// 加载slf文件
|
// 加载slf文件
|
||||||
widget->loadFromSLFCorePhysics(strSlfName, strLineName);
|
widget->loadFromSLFCorePhysics(strSlfName, strLineName);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,8 @@ public:
|
||||||
void displayCorePhysics(QJsonObject lineObjInfo);
|
void displayCorePhysics(QJsonObject lineObjInfo);
|
||||||
// 岩心照片
|
// 岩心照片
|
||||||
void displayImageData(QJsonObject lineObjInfo);
|
void displayImageData(QJsonObject lineObjInfo);
|
||||||
|
// 频率统计图
|
||||||
|
void displayPlObject(QJsonObject lineObjInfo);
|
||||||
|
|
||||||
//表格:固井结论等
|
//表格:固井结论等
|
||||||
void DisplayTable_One(QJsonObject lineObjInfo);
|
void DisplayTable_One(QJsonObject lineObjInfo);
|
||||||
|
|
@ -236,6 +238,7 @@ public:
|
||||||
|
|
||||||
//频率统计图
|
//频率统计图
|
||||||
void initFgrq(QMyCustomPlot *widget);
|
void initFgrq(QMyCustomPlot *widget);
|
||||||
|
void fgrqDraw(QMyCustomPlot *widget);
|
||||||
//玫瑰图
|
//玫瑰图
|
||||||
void initRose(QMyCustomPlot *widget);
|
void initRose(QMyCustomPlot *widget);
|
||||||
void addQCPItemLine(QMyCustomPlot *widget, float cx, float cy, const QPointF& p1, const QPointF& p2, const QPen& wPen);
|
void addQCPItemLine(QMyCustomPlot *widget, float cx, float cy, const QPointF& p1, const QPointF& p2, const QPen& wPen);
|
||||||
|
|
|
||||||
|
|
@ -163,6 +163,84 @@ void FormInfo::initProperty(QJsonObject obj)
|
||||||
m_sdMinorTickLineLength = obj["sdMinorTickLineLength"].toInt(); // 次刻度线长度
|
m_sdMinorTickLineLength = obj["sdMinorTickLineLength"].toInt(); // 次刻度线长度
|
||||||
m_sdMinorTickLineWidth = obj["sdMinorTickLineWidth"].toInt(); // 次刻度线宽度
|
m_sdMinorTickLineWidth = obj["sdMinorTickLineWidth"].toInt(); // 次刻度线宽度
|
||||||
}
|
}
|
||||||
|
else if ("plObject" == strType)
|
||||||
|
{
|
||||||
|
// 数据名称
|
||||||
|
this->m_pl_dataType = obj["m_pl_dataType"].toInt(); // 数据类型
|
||||||
|
// 显示单位
|
||||||
|
// 井文件名称
|
||||||
|
this->m_pl_azimuthCurve = obj["m_pl_azimuthCurve"].toString(); // 方位曲线
|
||||||
|
this->m_pl_inclinationCurve = obj["m_pl_inclinationCurve"].toString(); // 倾角曲线
|
||||||
|
|
||||||
|
this->m_headHeight = obj["m_headHeight"].toInt(); // 例区高度
|
||||||
|
|
||||||
|
// 名称
|
||||||
|
{
|
||||||
|
QStringList fontParts = obj["m_strAliasNameFont"].toString().split(","); // 按逗号拆分
|
||||||
|
if (fontParts.size() >= 2) {
|
||||||
|
this->m_strAliasNameFont.setFamily(fontParts[0]); // 设置字体名称
|
||||||
|
this->m_strAliasNameFont.setPointSize(fontParts[1].toInt()); // 设置字号
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 单位
|
||||||
|
{
|
||||||
|
QStringList fontParts = obj["m_strUnitFont"].toString().split(","); // 按逗号拆分
|
||||||
|
if (fontParts.size() >= 2) {
|
||||||
|
this->m_strUnitFont.setFamily(fontParts[0]); // 设置字体名称
|
||||||
|
this->m_strUnitFont.setPointSize(fontParts[1].toInt()); // 设置字号
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 刻度
|
||||||
|
{
|
||||||
|
QStringList fontParts = obj["m_pl_fontScale"].toString().split(","); // 按逗号拆分
|
||||||
|
if (fontParts.size() >= 2) {
|
||||||
|
this->m_pl_fontScale.setFamily(fontParts[0]); // 设置字体名称
|
||||||
|
this->m_pl_fontScale.setPointSize(fontParts[1].toInt()); // 设置字号
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// this->m_strAliasNameFont = obj["m_strAliasNameFont"]; // 曲线名称
|
||||||
|
|
||||||
|
this->m_pl_controlCurveName = obj["m_pl_controlCurveName"].toString(); // 曲线名
|
||||||
|
this->m_pl_controlMinValue = obj["m_pl_controlMinValue"].toDouble(); // 最小值
|
||||||
|
this->m_pl_controlMaxValue = obj["m_pl_controlMaxValue"].toDouble(); // 最大值
|
||||||
|
|
||||||
|
this->m_pl_sectorCount = obj["m_pl_sectorCount"].toInt(); // 扇形
|
||||||
|
this->m_pl_circleRadius = obj["m_pl_circleRadius"].toDouble(); // 圆半径
|
||||||
|
this->m_pl_circleColor = QColor(obj["m_pl_circleColor"].toString()); // 圆线颜色
|
||||||
|
this->m_pl_circleLineWidth = obj["m_pl_circleLineWidth"].toInt(); // 圆线宽度
|
||||||
|
this->m_pl_isFillEnabled = obj["m_pl_isFillEnabled"].toBool(); // 是否填充
|
||||||
|
this->m_pl_fillColor = QColor(obj["m_pl_fillColor"].toString()); // 填充颜色
|
||||||
|
|
||||||
|
this->m_pl_lineNumber = obj["m_pl_lineNumber"].toInt(); // 线数
|
||||||
|
this->m_pl_lineHeight = obj["m_pl_lineHeight"].toDouble(); // 统计线高度
|
||||||
|
this->m_pl_lineThickness = obj["m_pl_lineThickness"].toInt(); // 线粗细
|
||||||
|
this->m_pl_lineColor = QColor(obj["m_pl_lineColor"].toString()); // 线颜色
|
||||||
|
this->m_pl_drawAnnotation = obj["m_pl_drawAnnotation"].toBool(); // 是否绘制标注?
|
||||||
|
this->m_pl_drawHistogram = obj["m_pl_drawHistogram"].toBool(); // 绘制直方图?
|
||||||
|
|
||||||
|
this->m_pl_baselineWidth = obj["m_pl_baselineWidth"].toInt(); // 宽度
|
||||||
|
this->m_pl_baselineColor = QColor(obj["m_pl_baselineColor"].toString()); // 颜色
|
||||||
|
|
||||||
|
this->m_pl_statInterval = obj["m_pl_statInterval"].toInt(); // 统计间隔
|
||||||
|
this->m_pl_minInclination = obj["m_pl_minInclination"].toDouble(); // 最小倾角
|
||||||
|
this->m_pl_maxInclination = obj["m_pl_maxInclination"].toDouble(); // 最大倾角
|
||||||
|
|
||||||
|
this->m_pl_highGap = obj["m_pl_highGap"].toBool(); // 高导缝
|
||||||
|
this->m_pl_highReservoir = obj["m_pl_highReservoir"].toBool(); // 高阻缝
|
||||||
|
this->m_pl_reticularFracture = obj["m_pl_reticularFracture"].toBool(); // 网状缝
|
||||||
|
this->m_pl_inducedFracture = obj["m_pl_inducedFracture"].toBool(); // 诱导缝
|
||||||
|
this->m_pl_bedLayer = obj["m_pl_bedLayer"].toBool(); // 层理
|
||||||
|
this->m_pl_erosionSurface = obj["m_pl_erosionSurface"].toBool(); // 侵蚀面
|
||||||
|
this->m_pl_pore = obj["m_pl_pore"].toBool(); // 孔洞
|
||||||
|
this->m_pl_vesicle = obj["m_pl_vesicle"].toBool(); // 气孔
|
||||||
|
this->m_pl_gravel = obj["m_pl_gravel"].toBool(); // 砾石
|
||||||
|
this->m_pl_nodule = obj["m_pl_nodule"].toBool(); // 结核
|
||||||
|
this->m_pl_lumps = obj["m_pl_lumps"].toBool(); // 团块
|
||||||
|
this->m_pl_fault = obj["m_pl_fault"].toBool(); // 断层
|
||||||
|
this->m_pl_verticalFracture = obj["m_pl_verticalFracture"].toBool(); // 垂直缝
|
||||||
|
this->m_pl_custom1 = obj["m_pl_custom1"].toBool(); // 自定义1
|
||||||
|
this->m_pl_custom2 = obj["m_pl_custom2"].toBool(); // 自定义2
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -331,7 +409,7 @@ QJsonObject FormInfo::makeJson()
|
||||||
rootObj["sdMinorTickLineLength"] = m_sdMinorTickLineLength; // 次刻度线长度
|
rootObj["sdMinorTickLineLength"] = m_sdMinorTickLineLength; // 次刻度线长度
|
||||||
rootObj["sdMinorTickLineWidth"] = m_sdMinorTickLineWidth; // 次刻度线宽度
|
rootObj["sdMinorTickLineWidth"] = m_sdMinorTickLineWidth; // 次刻度线宽度
|
||||||
}
|
}
|
||||||
else if (m_strLineName == "CORE_PHYSICS")
|
else if (m_strLineName == "CORE_PHYSICS") // 岩心分析
|
||||||
{
|
{
|
||||||
rootObj["headHeight"] = m_headHeight; // 例区高度
|
rootObj["headHeight"] = m_headHeight; // 例区高度
|
||||||
rootObj["lineWidth"] = m_cp_lineWidth; // 线宽
|
rootObj["lineWidth"] = m_cp_lineWidth; // 线宽
|
||||||
|
|
@ -355,7 +433,7 @@ QJsonObject FormInfo::makeJson()
|
||||||
rootObj["symbolFillColor"] = m_cp_symbolFillColor.name(); // 填充颜色
|
rootObj["symbolFillColor"] = m_cp_symbolFillColor.name(); // 填充颜色
|
||||||
rootObj["fieldName"] = m_cp_fieldName; // 字段名称
|
rootObj["fieldName"] = m_cp_fieldName; // 字段名称
|
||||||
}
|
}
|
||||||
else if (m_strLineName == "IMAGE_DATA")
|
else if (m_strLineName == "IMAGE_DATA") // 岩心照片
|
||||||
{
|
{
|
||||||
rootObj["headHeight"] = m_headHeight; // 例区高度
|
rootObj["headHeight"] = m_headHeight; // 例区高度
|
||||||
// 标注字体
|
// 标注字体
|
||||||
|
|
@ -367,6 +445,64 @@ QJsonObject FormInfo::makeJson()
|
||||||
// 绘制颜色
|
// 绘制颜色
|
||||||
rootObj["yxzpLabelFont"] = m_yxzpDrawColor;
|
rootObj["yxzpLabelFont"] = m_yxzpDrawColor;
|
||||||
}
|
}
|
||||||
|
else if (m_strType == "plObject") // 岩心照片
|
||||||
|
{
|
||||||
|
// 数据名称
|
||||||
|
rootObj["m_pl_dataType"] = this->m_pl_dataType; // 数据类型
|
||||||
|
// 显示单位
|
||||||
|
// 井文件名称
|
||||||
|
rootObj["m_pl_azimuthCurve"] = this->m_pl_azimuthCurve; // 方位曲线
|
||||||
|
rootObj["m_pl_inclinationCurve"] = this->m_pl_inclinationCurve; // 倾角曲线
|
||||||
|
|
||||||
|
rootObj["m_headHeight"] = this->m_headHeight; // 例区高度
|
||||||
|
|
||||||
|
rootObj["m_strAliasNameFont"] = this->m_strAliasNameFont.toString(); // 名称
|
||||||
|
rootObj["m_strUnitFont"] = this->m_strUnitFont.toString(); // 单位
|
||||||
|
rootObj["m_pl_fontScale"] = this->m_pl_fontScale.toString(); // 刻度
|
||||||
|
// rootObj["m_strAliasNameFont"] = this->m_strAliasNameFont; // 曲线名称
|
||||||
|
|
||||||
|
rootObj["m_pl_controlCurveName"] = this->m_pl_controlCurveName; // 曲线名
|
||||||
|
rootObj["m_pl_controlMinValue"] = this->m_pl_controlMinValue; // 最小值
|
||||||
|
rootObj["m_pl_controlMaxValue"] = this->m_pl_controlMaxValue; // 最大值
|
||||||
|
|
||||||
|
rootObj["m_pl_sectorCount"] = this->m_pl_sectorCount; // 扇形
|
||||||
|
rootObj["m_pl_circleRadius"] = this->m_pl_circleRadius; // 圆半径
|
||||||
|
rootObj["m_pl_circleColor"] = this->m_pl_circleColor.name(); // 圆线颜色
|
||||||
|
rootObj["m_pl_circleLineWidth"] = this->m_pl_circleLineWidth; // 圆线宽度
|
||||||
|
rootObj["m_pl_isFillEnabled"] = this->m_pl_isFillEnabled; // 是否填充
|
||||||
|
rootObj["m_pl_fillColor"] = this->m_pl_fillColor.name(); // 填充颜色
|
||||||
|
|
||||||
|
rootObj["m_pl_lineNumber"] = this->m_pl_lineNumber; // 线数
|
||||||
|
rootObj["m_pl_lineHeight"] = this->m_pl_lineHeight; // 统计线高度
|
||||||
|
rootObj["m_pl_lineThickness"] = this->m_pl_lineThickness; // 线粗细
|
||||||
|
rootObj["m_pl_lineColor"] = this->m_pl_lineColor.name(); // 线颜色
|
||||||
|
rootObj["m_pl_drawAnnotation"] = this->m_pl_drawAnnotation; // 是否绘制标注?
|
||||||
|
rootObj["m_pl_drawHistogram"] = this->m_pl_drawHistogram; // 绘制直方图?
|
||||||
|
|
||||||
|
|
||||||
|
rootObj["m_pl_baselineWidth"] = this->m_pl_baselineWidth; // 宽度
|
||||||
|
rootObj["m_pl_baselineColor"] = this->m_pl_baselineColor.name(); // 颜色
|
||||||
|
|
||||||
|
rootObj["m_pl_statInterval"] = this->m_pl_statInterval; // 统计间隔
|
||||||
|
rootObj["m_pl_minInclination"] = this->m_pl_minInclination; // 最小倾角
|
||||||
|
rootObj["m_pl_maxInclination"] = this->m_pl_maxInclination; // 最大倾角
|
||||||
|
|
||||||
|
rootObj["m_pl_highGap"] = this->m_pl_highGap; // 高导缝
|
||||||
|
rootObj["m_pl_highReservoir"] = this->m_pl_highReservoir; // 高阻缝
|
||||||
|
rootObj["m_pl_reticularFracture"] = this->m_pl_reticularFracture; // 网状缝
|
||||||
|
rootObj["m_pl_inducedFracture"] = this->m_pl_inducedFracture; // 诱导缝
|
||||||
|
rootObj["m_pl_bedLayer"] = this->m_pl_bedLayer; // 层理
|
||||||
|
rootObj["m_pl_erosionSurface"] = this->m_pl_erosionSurface; // 侵蚀面
|
||||||
|
rootObj["m_pl_pore"] = this->m_pl_pore; // 孔洞
|
||||||
|
rootObj["m_pl_vesicle"] = this->m_pl_vesicle; // 气孔
|
||||||
|
rootObj["m_pl_gravel"] = this->m_pl_gravel; // 砾石
|
||||||
|
rootObj["m_pl_nodule"] = this->m_pl_nodule; // 结核
|
||||||
|
rootObj["m_pl_lumps"] = this->m_pl_lumps; // 团块
|
||||||
|
rootObj["m_pl_fault"] = this->m_pl_fault; // 断层
|
||||||
|
rootObj["m_pl_verticalFracture"] = this->m_pl_verticalFracture; // 垂直缝
|
||||||
|
rootObj["m_pl_custom1"] = this->m_pl_custom1; // 自定义1
|
||||||
|
rootObj["m_pl_custom2"] = this->m_pl_custom2; // 自定义2
|
||||||
|
}
|
||||||
|
|
||||||
return rootObj;
|
return rootObj;
|
||||||
}
|
}
|
||||||
|
|
@ -703,6 +839,10 @@ void FormInfo::paintEvent(QPaintEvent* event)
|
||||||
//蝌蚪图,不绘制左右范围
|
//蝌蚪图,不绘制左右范围
|
||||||
strShowTxt = "蝌蚪图";
|
strShowTxt = "蝌蚪图";
|
||||||
}
|
}
|
||||||
|
if(this->m_strType == "plObject")
|
||||||
|
{
|
||||||
|
strShowTxt = " ";
|
||||||
|
}
|
||||||
|
|
||||||
if (strShowTxt.length()>0)
|
if (strShowTxt.length()>0)
|
||||||
{
|
{
|
||||||
|
|
@ -796,7 +936,7 @@ void FormInfo::paintEvent(QPaintEvent* event)
|
||||||
painter.drawText(rect.left(), rect.top()+rect.height()*2/3, rect.width(), rect.height()/3 ,Qt::AlignCenter, QString::number(m_vmin)+" ~ "+QString::number(m_vmax));
|
painter.drawText(rect.left(), rect.top()+rect.height()*2/3, rect.width(), rect.height()/3 ,Qt::AlignCenter, QString::number(m_vmin)+" ~ "+QString::number(m_vmax));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_strLineName == "深度" || m_strType == "plObject")
|
if(m_strLineName == "深度")
|
||||||
{
|
{
|
||||||
QFont oldFont = painter.font();
|
QFont oldFont = painter.font();
|
||||||
painter.setFont(m_strUnitFont);
|
painter.setFont(m_strUnitFont);
|
||||||
|
|
@ -858,9 +998,105 @@ void FormInfo::paintEvent(QPaintEvent* event)
|
||||||
painter.setFont(oldFont);
|
painter.setFont(oldFont);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 频率统计图
|
||||||
if(this->m_strType == "plObject")
|
if(this->m_strType == "plObject")
|
||||||
{
|
{
|
||||||
|
painter.setRenderHint(QPainter::Antialiasing);
|
||||||
|
|
||||||
|
QRect rect = this->rect();
|
||||||
|
int width = rect.width();
|
||||||
|
int height = rect.height();
|
||||||
|
|
||||||
|
// ========== 固定距离配置 ==========
|
||||||
|
const int NAME_HEIGHT = 30; // 名称区域高度
|
||||||
|
const int UNIT_HEIGHT = 25; // 单位区域高度
|
||||||
|
const int COMPASS_SIZE = 50; // 指南针区域高度
|
||||||
|
const int SPACING = 15; // 元素之间的间距
|
||||||
|
|
||||||
|
// 计算总占用高度
|
||||||
|
int totalContentHeight = NAME_HEIGHT + SPACING + UNIT_HEIGHT + SPACING + COMPASS_SIZE;
|
||||||
|
|
||||||
|
// 垂直居中起始位置
|
||||||
|
int startY = (height - totalContentHeight) / 2;
|
||||||
|
if (startY < 0) startY = 0;
|
||||||
|
|
||||||
|
int currentY = startY;
|
||||||
|
int centerX = width / 2;
|
||||||
|
|
||||||
|
// ========== 1. 绘制名称(最上面)==========
|
||||||
|
QFont oldFont = painter.font();
|
||||||
|
painter.setFont(this->m_strAliasNameFont);
|
||||||
|
|
||||||
|
QRect nameRect(0, currentY, width, NAME_HEIGHT);
|
||||||
|
painter.drawText(nameRect, Qt::AlignCenter, this->m_strAliasName);
|
||||||
|
|
||||||
|
painter.setFont(oldFont);
|
||||||
|
currentY += NAME_HEIGHT + SPACING;
|
||||||
|
|
||||||
|
// ========== 2. 绘制单位(中间)==========
|
||||||
|
oldFont = painter.font();
|
||||||
|
painter.setFont(this->m_strUnitFont);
|
||||||
|
|
||||||
|
QRect unitRect(0, currentY, width, UNIT_HEIGHT);
|
||||||
|
painter.drawText(unitRect, Qt::AlignCenter, this->m_strUnit);
|
||||||
|
|
||||||
|
painter.setFont(oldFont);
|
||||||
|
currentY += UNIT_HEIGHT + SPACING;
|
||||||
|
|
||||||
|
// ========== 3. 绘制指南针(最下面)==========
|
||||||
|
oldFont = painter.font();
|
||||||
|
painter.setFont(this->m_pl_fontScale);
|
||||||
|
|
||||||
|
// 指南针在COMPASS_SIZE区域内垂直居中
|
||||||
|
int compassCenterY = currentY + COMPASS_SIZE / 2;
|
||||||
|
|
||||||
|
// ========== 根据字体大小计算十字线长度 ==========
|
||||||
|
QFontMetrics fm(this->m_pl_fontScale);
|
||||||
|
int fontHeight = fm.height(); // 字体高度
|
||||||
|
int fontAscent = fm.ascent(); // 字体上延
|
||||||
|
int lineLen = fontHeight * 0.6; // 十字线长度为字体高度的60%
|
||||||
|
|
||||||
|
// 确保不超出区域并留边距
|
||||||
|
int maxLineLen = (COMPASS_SIZE - fontHeight) / 2 - 4;
|
||||||
|
if (lineLen > maxLineLen) lineLen = maxLineLen;
|
||||||
|
if (lineLen < 8) lineLen = 8; // 最小长度保护
|
||||||
|
|
||||||
|
painter.setPen(QPen(Qt::black, 1));
|
||||||
|
|
||||||
|
// 画十字(根据字体大小调整长度)
|
||||||
|
painter.drawLine(centerX, compassCenterY - lineLen, centerX, compassCenterY + lineLen);
|
||||||
|
painter.drawLine(centerX - lineLen, compassCenterY, centerX + lineLen, compassCenterY);
|
||||||
|
|
||||||
|
// ========== 方向文字位置根据字体精确计算 ==========
|
||||||
|
int nWidth = fm.horizontalAdvance("N");
|
||||||
|
int eWidth = fm.horizontalAdvance("E");
|
||||||
|
int sWidth = fm.horizontalAdvance("S");
|
||||||
|
int wWidth = fm.horizontalAdvance("W");
|
||||||
|
|
||||||
|
// 文字与十字的间隙
|
||||||
|
int textGap = qMax(4, fontHeight / 5);
|
||||||
|
|
||||||
|
// N(上):紧贴十字上方
|
||||||
|
painter.drawText(centerX - nWidth / 2,
|
||||||
|
compassCenterY - lineLen - textGap,
|
||||||
|
"N");
|
||||||
|
|
||||||
|
// E(右):垂直居中于右侧横线
|
||||||
|
painter.drawText(centerX + lineLen + textGap,
|
||||||
|
compassCenterY + fontAscent / 2 - 1,
|
||||||
|
"E");
|
||||||
|
|
||||||
|
// S(下):紧贴十字下方
|
||||||
|
painter.drawText(centerX - sWidth / 2,
|
||||||
|
compassCenterY + lineLen + fontAscent + textGap,
|
||||||
|
"S");
|
||||||
|
|
||||||
|
// W(左):垂直居中于左侧横线
|
||||||
|
painter.drawText(centerX - lineLen - textGap - wWidth,
|
||||||
|
compassCenterY + fontAscent / 2 - 1,
|
||||||
|
"W");
|
||||||
|
|
||||||
|
painter.setFont(oldFont);
|
||||||
}
|
}
|
||||||
|
|
||||||
QWidget::paintEvent(event);
|
QWidget::paintEvent(event);
|
||||||
|
|
|
||||||
|
|
@ -243,58 +243,52 @@ public:
|
||||||
|
|
||||||
// 频率统计图
|
// 频率统计图
|
||||||
// 数据
|
// 数据
|
||||||
int m_pl_dataType; // 数据类型
|
int m_pl_dataType = 0; // 数据类型
|
||||||
QString m_pl_azimuthCurve = "DDIR"; // 方位曲线
|
QString m_pl_azimuthCurve = "DDIR"; // 方位曲线
|
||||||
QString m_pl_inclinationCurve = "DANG"; // 倾角曲线
|
QString m_pl_inclinationCurve = "DANG"; // 倾角曲线
|
||||||
// 通用界面配置
|
|
||||||
QString m_pl_sectionHeight; // 例区高度(cm)
|
|
||||||
// 字体相关配置
|
// 字体相关配置
|
||||||
QString m_pl_fontName; // 字体名称
|
QFont m_pl_fontScale = QFont("微软雅黑", 7); // 刻度字体大小
|
||||||
QString m_pl_fontUnit; // 单位字体
|
|
||||||
int m_pl_fontScale; // 刻度字体大小
|
|
||||||
QString m_pl_curveName; // 曲线名称
|
|
||||||
// 控制曲线参数
|
// 控制曲线参数
|
||||||
QString m_pl_controlCurveName; // 控制曲线名
|
QString m_pl_controlCurveName = "GRAD"; // 控制曲线名
|
||||||
double m_pl_controlMinValue; // 控制最小值
|
double m_pl_controlMinValue = 0; // 控制最小值
|
||||||
double m_pl_controlMaxValue; // 控制最大值
|
double m_pl_controlMaxValue = 100; // 控制最大值
|
||||||
// 方位频率绘图参数
|
// 方位频率绘图参数
|
||||||
int m_pl_azimuthFrequency; // 方位频率
|
int m_pl_sectorCount = 36; // 扇形数量
|
||||||
int m_pl_sectorCount; // 扇形数量
|
double m_pl_circleRadius = 1; // 圆半径(cm)
|
||||||
double m_pl_circleRadius; // 圆半径(cm)
|
QColor m_pl_circleColor = Qt::black; // 圆线颜色
|
||||||
QColor m_pl_circleColor; // 圆线颜色
|
int m_pl_circleLineWidth = 2; // 圆线宽度
|
||||||
int m_pl_circleLineWidth; // 圆线宽度
|
bool m_pl_isFillEnabled = true; // 是否启用填充
|
||||||
bool m_pl_isFillEnabled; // 是否启用填充
|
QColor m_pl_fillColor = Qt::black; // 填充颜色
|
||||||
QColor m_pl_fillColor; // 填充颜色
|
|
||||||
int m_pl_fillFrequency; // 填充频率
|
|
||||||
// 倾角频率绘图参数
|
// 倾角频率绘图参数
|
||||||
int m_pl_dipFrequency; // 倾角频率
|
int m_pl_lineNumber = 9; // 线数
|
||||||
int m_pl_lineType; // 线型
|
double m_pl_lineHeight = 2; // 统计线高度
|
||||||
int m_pl_lineThickness; // 线粗细
|
int m_pl_lineThickness = 2; // 线粗细
|
||||||
QColor m_pl_lineColor; // 线颜色
|
QColor m_pl_lineColor = Qt::black; // 线颜色
|
||||||
bool m_pl_drawAnnotation; // 是否绘制标注
|
bool m_pl_drawAnnotation = true; // 是否绘制标注
|
||||||
bool m_pl_drawHistogram; // 是否绘制直方图
|
bool m_pl_drawHistogram = true; // 是否绘制直方图
|
||||||
// 基线参数
|
// 基线参数
|
||||||
int m_pl_baselineWidth; // 基线宽度
|
int m_pl_baselineWidth = 2; // 基线宽度
|
||||||
QColor m_pl_baselineColor; // 基线颜色
|
QColor m_pl_baselineColor = Qt::black; // 基线颜色
|
||||||
// 统计参数
|
// 统计参数
|
||||||
int m_pl_statInterval; // 统计间隔
|
int m_pl_statInterval = 20; // 统计间隔
|
||||||
double m_pl_minInclination; // 最小倾角
|
double m_pl_minInclination = 0; // 最小倾角
|
||||||
double m_pl_maxInclination; // 最大倾角
|
double m_pl_maxInclination = 90; // 最大倾角
|
||||||
// 地质要素分类开关
|
// 地质要素分类开关
|
||||||
bool m_pl_highGap; // 高导缝
|
bool m_pl_highGap = false; // 高导缝
|
||||||
bool m_pl_highReservoir; // 高阻缝
|
bool m_pl_highReservoir = false; // 高阻缝
|
||||||
bool m_pl_reticularFracture; // 网状缝
|
bool m_pl_reticularFracture = false; // 网状缝
|
||||||
bool m_pl_inducedFracture; // 诱导缝
|
bool m_pl_inducedFracture = false; // 诱导缝
|
||||||
bool m_pl_bedLayer; // 层理
|
bool m_pl_bedLayer = false; // 层理
|
||||||
bool m_pl_erosionSurface; // 侵蚀面
|
bool m_pl_erosionSurface = false; // 侵蚀面
|
||||||
bool m_pl_pore; // 孔洞
|
bool m_pl_pore = false; // 孔洞
|
||||||
bool m_pl_vesicle; // 气孔
|
bool m_pl_vesicle = false; // 气孔
|
||||||
bool m_pl_gravel; // 砾石
|
bool m_pl_gravel = false; // 砾石
|
||||||
bool m_pl_nodule; // 结核
|
bool m_pl_nodule = false; // 结核
|
||||||
bool m_pl_lumps; // 团块
|
bool m_pl_lumps = false; // 团块
|
||||||
bool m_pl_fault; // 断层
|
bool m_pl_fault = false; // 断层
|
||||||
bool m_pl_verticalFracture; // 垂直缝
|
bool m_pl_verticalFracture = false; // 垂直缝
|
||||||
QString m_pl_custom1; // 自定义1
|
bool m_pl_custom1 = false; // 自定义1
|
||||||
|
bool m_pl_custom2 = false; // 自定义2
|
||||||
|
|
||||||
int cpLineWidth() const;
|
int cpLineWidth() const;
|
||||||
void setCpLineWidth(int cpLineWidth);
|
void setCpLineWidth(int cpLineWidth);
|
||||||
|
|
@ -328,7 +322,6 @@ public:
|
||||||
//右键菜单响应函数
|
//右键菜单响应函数
|
||||||
virtual void contextMenuEvent(QContextMenuEvent *event);
|
virtual void contextMenuEvent(QContextMenuEvent *event);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QPoint startPosition;
|
QPoint startPosition;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user