图表上上显示文件名称

This commit is contained in:
brige 2025-07-20 16:34:48 +08:00
parent d2627b1527
commit fc4dd95e72
10 changed files with 218 additions and 76 deletions

View File

@ -423,12 +423,32 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/chartPlot/FitCurveDialog.cpp" line="773"/>
<location filename="../ui/chartPlot/FitCurveDialog.cpp" line="640"/>
<location filename="../ui/chartPlot/FitCurveDialog.cpp" line="666"/>
<source>2D Curve -- %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/chartPlot/FitCurveDialog.cpp" line="642"/>
<location filename="../ui/chartPlot/FitCurveDialog.cpp" line="649"/>
<location filename="../ui/chartPlot/FitCurveDialog.cpp" line="669"/>
<location filename="../ui/chartPlot/FitCurveDialog.cpp" line="677"/>
<source>%1 -- %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/chartPlot/FitCurveDialog.cpp" line="647"/>
<location filename="../ui/chartPlot/FitCurveDialog.cpp" line="674"/>
<source>2D(y(lg)) Curve -- %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/chartPlot/FitCurveDialog.cpp" line="820"/>
<source>2D Curve</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/chartPlot/FitCurveDialog.cpp" line="777"/>
<location filename="../ui/chartPlot/FitCurveDialog.cpp" line="831"/>
<source>2D(y(lg)) Curve</source>
<translation type="unfinished"></translation>
</message>
@ -1555,12 +1575,17 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Layout/SignalIndicatorLampUI.cpp" line="44"/>
<location filename="../ui/Layout/SignalIndicatorLampUI.cpp" line="51"/>
<source>Signal Indicator Lamp</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Layout/SignalIndicatorLampUI.cpp" line="192"/>
<location filename="../ui/Layout/SignalIndicatorLampUI.cpp" line="200"/>
<source>%1 -- %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Layout/SignalIndicatorLampUI.cpp" line="206"/>
<source>light</source>
<translation type="unfinished"></translation>
</message>
@ -1581,10 +1606,15 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/chartPlot/SurfaceDialog.cpp" line="44"/>
<location filename="../ui/chartPlot/SurfaceDialog.cpp" line="45"/>
<source>3D Curve</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/chartPlot/SurfaceDialog.cpp" line="60"/>
<source>3D Curve -- %1</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SystemManagerMenu</name>
@ -1657,10 +1687,15 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Table/targetlistwgt.cpp" line="63"/>
<location filename="../ui/Table/targetlistwgt.cpp" line="70"/>
<source>Data Table</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/Table/targetlistwgt.cpp" line="127"/>
<source>%1 -- %2</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ViewManagerMenu</name>

View File

@ -1,4 +1,4 @@
#include "CodeEdtUI.h"
#include "CodeEdtUI.h"
#include <QPlainTextEdit>
#include <QMenuBar>
@ -25,7 +25,7 @@ CodeEdtUI::CodeEdtUI(QWidget *parent)
{
ui.setupUi(this);
// 创建代码编辑器
// 创建代码编辑器
editor = new QPlainTextEdit(this);
QFont serifFont("Times", 20, QFont::Bold);
@ -38,7 +38,7 @@ CodeEdtUI::CodeEdtUI(QWidget *parent)
InitBat();
// // 创建菜单
// // 创建菜单
// QMenu* fileMenu = menuBar()->addMenu(tr("&file"));
// QAction* openMainAction = new QAction(tr("&Import the template"), this);
///* QAction* openLDAction = new QAction(tr("&Import the LD template"), this);
@ -55,7 +55,7 @@ CodeEdtUI::CodeEdtUI(QWidget *parent)
// connect(saveAction, &QAction::triggered, this, &CodeEdtUI::saveFile);
// // 状态栏
// // 状态栏
// statusBar();
}
@ -71,7 +71,7 @@ void CodeEdtUI::AttachDock(DockWidget* dockWidget)
DockTitleBar* dockTitleBar = new DockTitleBar;
dockTitleBar->SetTitle(u8"bat文件");
dockTitleBar->SetTitle(u8"bat文件");
dockWidget->SetDockWidgetTitleBar(dockTitleBar);
}
@ -79,7 +79,7 @@ void CodeEdtUI::AttachDock(DockWidget* dockWidget)
void CodeEdtUI::InitBat()
{
{
QMenu* fileMenu = menuBar()->addMenu(u8"文件");
QMenu* fileMenu = menuBar()->addMenu(u8"文件");
QDir dir(RecourceHelper::Get().GetBasePath() + "/bat");
QFileInfoList fileInfoList = dir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot | QDir::NoSymLinks);
@ -99,12 +99,12 @@ void CodeEdtUI::InitBat()
}
{
QMenu* ctrlMenu = menuBar()->addMenu(u8"控制");
QMenu* ctrlMenu = menuBar()->addMenu(u8"控制");
QAction* runAction = new QAction(tr(u8"执行"), this);
QAction* runAction = new QAction(tr(u8"执行"), this);
ctrlMenu->addAction(runAction);
QAction* saveAction = new QAction(u8"保存", this);
QAction* saveAction = new QAction(u8"保存", this);
ctrlMenu->addAction(saveAction);
connect(runAction, &QAction::triggered, this, &CodeEdtUI::runFile);
@ -182,20 +182,20 @@ void CodeEdtUI::runFile()
{
saveFile();
// 创建QProcess对象
// 创建QProcess对象
QProcess process;
// 启动批处理文件
// 启动批处理文件
process.start(m_strCurOpenFile);
// 等待过程完成
// 等待过程完成
process.waitForFinished();
// 获取输出
// 获取输出
QString output = process.readAllStandardOutput();
QString errorOutput = process.readAllStandardError();
// 打印输出
// 打印输出
qDebug() << "Output:" << output;
qDebug() << "Error Output:" << errorOutput;
}

View File

@ -4,6 +4,7 @@
#include <QVBoxLayout>
#include <QGridLayout>
#include <QPainter>
#include <QFileInfo>
#include "../DockTitleBar.h"
#include "../DockWidget.h"
@ -36,12 +37,21 @@ void SignalIndicatorLampUI::AttachDock(DockWidget* dockWidget)
return;
}
if (nullptr != dockWidget) {
m_titleText = dockWidget->windowTitle();
}
dockWidget->SetDockWidgetTitleBar(nullptr);
dockWidget->setWidget(this);
DockTitleBar* dockTitleBar = new DockTitleBar;
m_pDockTitleBar = dockTitleBar;
if (m_titleText.isEmpty()) {
dockTitleBar->SetTitle(tr("Signal Indicator Lamp"));
} else {
dockTitleBar->SetTitle(m_titleText);
}
dockWidget->SetDockWidgetTitleBar(dockTitleBar);
}
@ -184,12 +194,16 @@ void SignalIndicatorLampUI::UpdateIndicatorLamp(QStringList& lamps, LayoutType t
void SignalIndicatorLampUI::InitLamp(const QString& strFile)
{
ParseLamp(strFile);
bool bRet = ParseLamp(strFile);
if (nullptr != m_pDockTitleBar && bRet) {
QFileInfo fileInfo(strFile);
m_pDockTitleBar->SetTitle(tr("%1 -- %2").arg(m_titleText).arg(fileInfo.fileName()));
}
QStringList listLamp;
for (size_t i = 0; i < m_iLampCount; i++)
{
listLamp <<tr("light") + QString::number(i+1); // 指示灯
listLamp <<tr("light") + QString::number(i+1); // ָʾ<EFBFBD><EFBFBD>
}
InitIndicatorLamp(listLamp, SignalIndicatorLampUI::HLyt, listLamp.size());
@ -270,12 +284,12 @@ void SignalIndicatorLampUI::paintEvent(QPaintEvent* event)
painter.drawRect(QRect(5,5,rect().width() - 10, rect().height() - 10));
}
void SignalIndicatorLampUI::ParseLamp(const QString& strFile)
bool SignalIndicatorLampUI::ParseLamp(const QString& strFile)
{
if (strFile.isEmpty())
{
QMessageBox::information(nullptr, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("请检查数据Lamp文件路径"));
return;
QMessageBox::information(nullptr, QString::fromLocal8Bit("<EFBFBD><EFBFBD>ʾ"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Lamp<EFBFBD>ļ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
return false;
}
m_lampStatus.clear();
@ -300,4 +314,6 @@ void SignalIndicatorLampUI::ParseLamp(const QString& strFile)
file.close();
}
return true;
}

View File

@ -13,11 +13,11 @@ class SignalIndicatorLampUI : public QWidget
Q_OBJECT
public:
enum LayoutType // 信号灯布局类型
enum LayoutType // <EFBFBD>źŵƲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
HLyt, // ˮƽ
VLyt, // 垂直
GLyt, // 网格
VLyt, // <EFBFBD><EFBFBD>ֱ
GLyt, // <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
SignalIndicatorLampUI( QWidget *parent = Q_NULLPTR);
@ -42,7 +42,7 @@ protected slots:
protected:
void paintEvent(QPaintEvent* event);
void ParseLamp(const QString& strFile);
bool ParseLamp(const QString& strFile);
private:
Ui::SignalIndicatorLampUI ui;
@ -51,4 +51,7 @@ private:
QList<int> m_lampStatus;
int m_iLampCount = 0;
QString m_titleText;
class DockTitleBar* m_pDockTitleBar { nullptr };
};

View File

@ -6,7 +6,8 @@
#include <QHBoxLayout>
#include <QDateTime>
#include <QMenu>
#include <qdebug.h>
#include <QDebug>
#include <QFileInfo>
#include <windows.h>
#include <windowsx.h>
@ -55,12 +56,21 @@ void TargetListWgt::AttachDock(DockWidget* dockWidget)
return;
}
if (nullptr != dockWidget) {
m_titleText = dockWidget->windowTitle();
}
dockWidget->SetDockWidgetTitleBar(nullptr);
dockWidget->setWidget(this);
DockTitleBar* dockTitleBar = new DockTitleBar;
m_pDockTitleBar = dockTitleBar;
if (m_titleText.isEmpty()) {
dockTitleBar->SetTitle(tr("Data Table"));
} else {
dockTitleBar->SetTitle(m_titleText);
}
dockWidget->SetDockWidgetTitleBar(dockTitleBar);
}
@ -110,7 +120,12 @@ void TargetListWgt::InitFile(const QString& strFile, int iBatchCount)
m_iBatchCount = iBatchCount;
m_strFile = strFile;
m_vecReportPoint.clear();
ParseReport(strFile, m_vecReportPoint, m_iBatchCount);
bool bRet = ParseReport(strFile, m_vecReportPoint, m_iBatchCount);
if (nullptr != m_pDockTitleBar && bRet) {
QFileInfo fileInfo(strFile);
m_pDockTitleBar->SetTitle(tr("%1 -- %2").arg(m_titleText).arg(fileInfo.fileName()));
}
UpdateTable(1);
@ -149,12 +164,12 @@ void TargetListWgt::InitWgt()
connect(ui.tableWidget->horizontalHeader(),SIGNAL(sectionClicked(int)), this, SLOT(slotSortTabCol(int)));
}
void TargetListWgt::ParseReport(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecReportPoint, int iRowCount)
bool TargetListWgt::ParseReport(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecReportPoint, int iRowCount)
{
if (strFile.isEmpty())
{
QMessageBox::information(nullptr, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("请检查数据Report文件路径"));
return;
return false;
}
QFile file(strFile);
@ -190,6 +205,8 @@ void TargetListWgt::ParseReport(const QString& strFile, std::vector<std::vector<
file.close();
}
return true;
}
void TargetListWgt::slotSortTabCol(int nCol)

View File

@ -37,7 +37,7 @@ public:
protected:
void InitWgt();
void ParseReport(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecReportPoint, int iRowCount = 50);
bool ParseReport(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecReportPoint, int iRowCount = 50);
void UpdatePageNum();
void UpdateButtonEnable(); // 更新按钮状态
@ -80,4 +80,7 @@ private:
std::vector<std::vector<std::vector<float>>> m_vecReportPoint;
int m_iBatchCount;
QString m_titleText;
class DockTitleBar* m_pDockTitleBar { nullptr };
};

View File

@ -632,7 +632,24 @@ void FitCurveDialog::InitWaveFile(const QString& strFile, int iBatchCount)
return;
m_vecWavePoint.clear();
ParseWave(strFile, m_vecWavePoint, iBatchCount);
bool bRet = ParseWave(strFile, m_vecWavePoint, iBatchCount);
if (nullptr != m_pDockTitleBar && bRet) {
QFileInfo fileInfo(strFile);
if (1 == m_iType) {
if (m_titleText.isEmpty()) {
m_pDockTitleBar->SetTitle(tr("2D Curve -- %1").arg(fileInfo.fileName()));
} else {
m_pDockTitleBar->SetTitle(tr("%1 -- %2").arg(m_titleText).arg(fileInfo.fileName()));
}
} else {
if (m_titleText.isEmpty()) {
m_pDockTitleBar->SetTitle(tr("2D(y(lg)) Curve -- %1").arg(fileInfo.fileName()));
} else {
m_pDockTitleBar->SetTitle(tr("%1 -- %2").arg(m_titleText).arg(fileInfo.fileName()));
}
}
}
}
void FitCurveDialog::InitReportFile(const QString& strFile, int iBatchCount)
@ -641,15 +658,35 @@ void FitCurveDialog::InitReportFile(const QString& strFile, int iBatchCount)
return;
m_vecReportPoint.clear();
ParseReport(strFile, m_vecReportPoint, iBatchCount);
bool bRet = ParseReport(strFile, m_vecReportPoint, iBatchCount);
if (nullptr != m_pDockTitleBar && bRet) {
QFileInfo fileInfo(strFile);
if (1 == m_iType) {
if (m_titleText.isEmpty()) {
m_pDockTitleBar->SetTitle(tr("2D Curve -- %1").arg(fileInfo.fileName()));
}
else {
m_pDockTitleBar->SetTitle(tr("%1 -- %2").arg(m_titleText).arg(fileInfo.fileName()));
}
void FitCurveDialog::ParseWave(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecWavePoint, int iRowCount)
} else {
if (m_titleText.isEmpty()) {
m_pDockTitleBar->SetTitle(tr("2D(y(lg)) Curve -- %1").arg(fileInfo.fileName()));
}
else {
m_pDockTitleBar->SetTitle(tr("%1 -- %2").arg(m_titleText).arg(fileInfo.fileName()));
}
}
}
}
bool FitCurveDialog::ParseWave(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecWavePoint, int iRowCount)
{
if (strFile.isEmpty())
{
QMessageBox::information(nullptr, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("请检查数据Wave文件路径"));
return;
return false;
}
QFile file(strFile);
@ -684,14 +721,16 @@ void FitCurveDialog::ParseWave(const QString& strFile, std::vector<std::vector<s
file.close();
}
return true;
}
void FitCurveDialog::ParseReport(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecReportPoint, int iRowCount)
bool FitCurveDialog::ParseReport(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecReportPoint, int iRowCount)
{
if (strFile.isEmpty())
{
QMessageBox::information(nullptr, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("请检查数据Report文件路径"));
return;
return false;
}
QFile file(strFile);
@ -731,6 +770,8 @@ void FitCurveDialog::ParseReport(const QString& strFile, std::vector<std::vector
}
slotUpdateTime(1);
return true;
}
void FitCurveDialog::OnWorkSpaceChanged(WorkSpace* worksapce) {
@ -766,16 +807,33 @@ void FitCurveDialog::AttachDock(DockWidget* dockWidget)
dockWidget->SetDockWidgetTitleBar(nullptr);
dockWidget->setWidget(this);
if (nullptr != dockWidget) {
m_titleText = dockWidget->windowTitle();
}
DockTitleBar* dockTitleBar = new DockTitleBar;
m_pDockTitleBar = dockTitleBar;
if (1 == m_iType)
{
if (m_titleText.isEmpty())
{
dockTitleBar->SetTitle(tr("2D Curve"));
}
else
{
dockTitleBar->SetTitle(m_titleText);
}
}
else
{
if (m_titleText.isEmpty())
{
dockTitleBar->SetTitle(tr("2D(y(lg)) Curve"));
}
else {
dockTitleBar->SetTitle(m_titleText);
}
}
dockWidget->SetDockWidgetTitleBar(dockTitleBar);
}

View File

@ -29,8 +29,8 @@ public:
void InitReportFile(const QString& strFile, int iBatchCount = 50);
protected:
void ParseWave(const QString& strFile, std::vector < std::vector<std::vector<float>>>& vecWavePoint, int iRowCount = 50);
void ParseReport(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecReportPoint, int iRowCount = 50);
bool ParseWave(const QString& strFile, std::vector < std::vector<std::vector<float>>>& vecWavePoint, int iRowCount = 50);
bool ParseReport(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecReportPoint, int iRowCount = 50);
void OnWorkSpaceChanged(class WorkSpace*);
void OnTimestepChanged(class Timestep*);
@ -40,7 +40,7 @@ public slots:
void slotAddSeries(QVariant varSeriesData);
void slotDelCurve(int iID); // 删除曲线
void slotDelCurve(int iID); // ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void slotInserKeyPoint(int iID,float xValue, float yValue);
@ -51,14 +51,14 @@ private:
FitCurveChartView* curveChartView;
QChart* curveChart;
//QSplineSeries* fitPointsSeriesS; //要显示的曲线原始数据
//QSplineSeries* fitPointsSeriesS; //Ҫ<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//QScatterSeries* tipSeries;
//QSplineSeries* xGuideSeries; //鼠标悬浮位置点的x轴辅助线
//QSplineSeries* yGuideSeries; //鼠标悬浮位置点的y轴辅助线
bool isPressed = false; //图标是否在拖拽中
QPoint pressedPoint; //鼠标拖拽起点
//QSplineSeries* xGuideSeries; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>õ<EFBFBD><EFBFBD>x<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//QSplineSeries* yGuideSeries; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>õ<EFBFBD><EFBFBD>y<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool isPressed = false; //ͼ<EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ק<EFBFBD><EFBFBD>
QPoint pressedPoint; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ק<EFBFBD><EFBFBD><EFBFBD>
int m_iType; // y轴曲线
int m_iType; // y<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QValueAxis* m_pAxisX = NULL;
QValueAxis* m_pAxisY = NULL;
@ -74,6 +74,8 @@ private:
std::vector<std::vector<std::vector<float>>> m_vecReportPoint;
int m_iID = 1;
QString m_titleText;
class DockTitleBar* m_pDockTitleBar { nullptr };
};
#endif // FITCURVEDIALOG_H

View File

@ -7,6 +7,7 @@
#include <QScatterDataItem>
#include <QMessageBox>
#include <Q3DCamera>
#include <QFileInfo>
#include "common/SpdLogger.h"
#include "workspace/WorkSpace.h"
@ -39,11 +40,11 @@ void SurfaceDialog::AttachDock(DockWidget* dockWidget)
dockWidget->SetDockWidgetTitleBar(nullptr);
dockWidget->setWidget(this);
DockTitleBar* dockTitleBar = new DockTitleBar;
m_pDockTitleBar = new DockTitleBar;
dockTitleBar->SetTitle(tr("3D Curve"));
m_pDockTitleBar->SetTitle(tr("3D Curve"));
dockWidget->SetDockWidgetTitleBar(dockTitleBar);
dockWidget->SetDockWidgetTitleBar(m_pDockTitleBar);
}
void SurfaceDialog::InitRD(const QString& strFile, int iBatch, int iRowCount)
@ -52,26 +53,31 @@ void SurfaceDialog::InitRD(const QString& strFile, int iBatch, int iRowCount)
return;
m_vecRDPoint.clear();
ParseRD(strFile, m_vecRDPoint,iBatch, iRowCount);
bool bRet = ParseRD(strFile, m_vecRDPoint,iBatch, iRowCount);
if (nullptr != m_pDockTitleBar && bRet) {
QFileInfo fileInfo(strFile);
m_pDockTitleBar->SetTitle(tr("3D Curve -- %1").arg(fileInfo.fileName()));
}
}
void SurfaceDialog::slotAddSeries(QVariant varSeriesData)
{
// 数据无效
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
if (!varSeriesData.isValid())
{
return;
}
QVariantList varCurDataList = varSeriesData.toMap().value("Data").toList(); // 数据
QColor color = varSeriesData.toMap().value("Color").value<QColor>(); // 曲线颜色
QString strXName = varSeriesData.toMap().value("xTitle").toString(); // x轴名称
QString strYName = varSeriesData.toMap().value("yTitle").toString(); // y轴名称
QString strZName = varSeriesData.toMap().value("zTitle").toString(); // z轴名称
int iID = varSeriesData.toMap().value("ID").toInt(); // y轴类型
bool bAdd = varSeriesData.toMap().value("Add").toBool(); // 曲线名称
int iCurveType = varSeriesData.toMap().value("curveType").toInt(); // 曲线类型
if (iCurveType != 3) // 二维曲线
QVariantList varCurDataList = varSeriesData.toMap().value("Data").toList(); // <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QColor color = varSeriesData.toMap().value("Color").value<QColor>(); // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
QString strXName = varSeriesData.toMap().value("xTitle").toString(); // x<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QString strYName = varSeriesData.toMap().value("yTitle").toString(); // y<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QString strZName = varSeriesData.toMap().value("zTitle").toString(); // z<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int iID = varSeriesData.toMap().value("ID").toInt(); // y<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool bAdd = varSeriesData.toMap().value("Add").toBool(); // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int iCurveType = varSeriesData.toMap().value("curveType").toInt(); // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (iCurveType != 3) // <EFBFBD><EFBFBD>ά<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
return;
}
@ -149,7 +155,7 @@ void SurfaceDialog::slotAddSeries(QVariant varSeriesData)
m_p3DYAxis->setRange(m_iMinZ, m_iMaxZ);
m_p3DZAxis->setRange(m_iMinY, m_iMaxY);
// 设置颜色样式
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><EFBFBD>ʽ
m_pSeries->setBaseColor(color);
m_pSeries->setColorStyle(Q3DTheme::ColorStyleUniform);
m_pSeries->setSingleHighlightColor(color);
@ -158,7 +164,7 @@ void SurfaceDialog::slotAddSeries(QVariant varSeriesData)
void SurfaceDialog::slotInserKeyPoint(float xValue, float yValue, float zValue)
{
QVector3D vecItem(xValue, yValue, zValue);
// 更新x轴最大值最小值
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>Сֵ
if (m_iMinX > xValue)
{
m_iMinX = xValue;
@ -334,13 +340,13 @@ void SurfaceDialog::InitSurface()
pLyt->addWidget(containerHandle);
// 设置颜色样式
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><EFBFBD>ʽ
m_pSeries->setBaseColor(Qt::green);
m_pSeries->setColorStyle(Q3DTheme::ColorStyleUniform);
m_pSeries->setSingleHighlightColor(Qt::green);
m_pSeries->setMeshSmooth(false); // 设置网格是否平滑
m_pSeries->setFlatShadingEnabled(false); // 启用或禁用平面着色
m_pSeries->setMeshSmooth(false); // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>ƽ<EFBFBD><EFBFBD>
m_pSeries->setFlatShadingEnabled(false); // <EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
}
void SurfaceDialog::InitScatter()
@ -358,12 +364,12 @@ void SurfaceDialog::InitScatter()
pLyt->addWidget(container);
}
void SurfaceDialog::ParseRD(const QString& strFile, std::vector < std::vector<std::vector<float>>>& vecRDPoint, int iBatchCount, int iRowCount)
bool SurfaceDialog::ParseRD(const QString& strFile, std::vector < std::vector<std::vector<float>>>& vecRDPoint, int iBatchCount, int iRowCount)
{
if (strFile.isEmpty())
{
QMessageBox::information(nullptr, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("请检查数据RD文件路径"));
return;
QMessageBox::information(nullptr, QString::fromLocal8Bit("<EFBFBD><EFBFBD>ʾ"), QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RD<EFBFBD>ļ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
return false;
}
QFile file(strFile);
@ -398,4 +404,5 @@ void SurfaceDialog::ParseRD(const QString& strFile, std::vector < std::vector<st
file.close();
}
return true;
}

View File

@ -32,7 +32,7 @@ protected:
void InitSurface();
void InitScatter();
void ParseRD(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecRDPoint, int iBatchCount = 50, int iRowCount = 64);
bool ParseRD(const QString& strFile, std::vector<std::vector<std::vector<float>>>& vecRDPoint, int iBatchCount = 50, int iRowCount = 64);
private:
Ui::SurfaceDialog ui;
@ -54,4 +54,5 @@ private:
float m_iMaxZ = 10;
std::vector<std::vector<std::vector<float>>> m_vecRDPoint;
class DockTitleBar* m_pDockTitleBar { nullptr };
};