From fc4dd95e72fea8ae0c0bce1365eb9494ac54450e Mon Sep 17 00:00:00 2001 From: brige Date: Sun, 20 Jul 2025 16:34:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E8=A1=A8=E4=B8=8A=E4=B8=8A=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=96=87=E4=BB=B6=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/translations/Dyt_zh_CN.ts | 47 ++++++++++++++-- src/ui/Layout/CodeEdtUI.cpp | 28 +++++----- src/ui/Layout/SignalIndicatorLampUI.cpp | 28 ++++++++-- src/ui/Layout/SignalIndicatorLampUI.h | 11 ++-- src/ui/Table/targetlistwgt.cpp | 27 +++++++-- src/ui/Table/targetlistwgt.h | 5 +- src/ui/chartPlot/FitCurveDialog.cpp | 74 ++++++++++++++++++++++--- src/ui/chartPlot/FitCurveDialog.h | 20 ++++--- src/ui/chartPlot/SurfaceDialog.cpp | 51 +++++++++-------- src/ui/chartPlot/SurfaceDialog.h | 3 +- 10 files changed, 218 insertions(+), 76 deletions(-) diff --git a/src/translations/Dyt_zh_CN.ts b/src/translations/Dyt_zh_CN.ts index 75e3555c..5711427f 100644 --- a/src/translations/Dyt_zh_CN.ts +++ b/src/translations/Dyt_zh_CN.ts @@ -423,12 +423,32 @@ - + + + 2D Curve -- %1 + + + + + + + + %1 -- %2 + + + + + + 2D(y(lg)) Curve -- %1 + + + + 2D Curve - + 2D(y(lg)) Curve @@ -1555,12 +1575,17 @@ - + Signal Indicator Lamp - + + %1 -- %2 + + + + light @@ -1581,10 +1606,15 @@ - + 3D Curve + + + 3D Curve -- %1 + + SystemManagerMenu @@ -1657,10 +1687,15 @@ - + Data Table + + + %1 -- %2 + + ViewManagerMenu diff --git a/src/ui/Layout/CodeEdtUI.cpp b/src/ui/Layout/CodeEdtUI.cpp index e1225488..eab66aa2 100644 --- a/src/ui/Layout/CodeEdtUI.cpp +++ b/src/ui/Layout/CodeEdtUI.cpp @@ -1,4 +1,4 @@ -#include "CodeEdtUI.h" +#include "CodeEdtUI.h" #include #include @@ -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; } diff --git a/src/ui/Layout/SignalIndicatorLampUI.cpp b/src/ui/Layout/SignalIndicatorLampUI.cpp index 472f0b98..06185846 100644 --- a/src/ui/Layout/SignalIndicatorLampUI.cpp +++ b/src/ui/Layout/SignalIndicatorLampUI.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #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; - dockTitleBar->SetTitle(tr("Signal Indicator Lamp")); + 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 < m_lampStatus; int m_iLampCount = 0; + + QString m_titleText; + class DockTitleBar* m_pDockTitleBar { nullptr }; }; diff --git a/src/ui/Table/targetlistwgt.cpp b/src/ui/Table/targetlistwgt.cpp index cd366f6a..f4d09300 100644 --- a/src/ui/Table/targetlistwgt.cpp +++ b/src/ui/Table/targetlistwgt.cpp @@ -6,7 +6,8 @@ #include #include #include -#include +#include +#include #include #include @@ -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; - dockTitleBar->SetTitle(tr("Data Table")); + 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>>& vecReportPoint, int iRowCount) +bool TargetListWgt::ParseReport(const QString& strFile, std::vector>>& 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>>& vecReportPoint, int iRowCount = 50); + bool ParseReport(const QString& strFile, std::vector>>& vecReportPoint, int iRowCount = 50); void UpdatePageNum(); void UpdateButtonEnable(); // 更新按钮状态 @@ -80,4 +80,7 @@ private: std::vector>> m_vecReportPoint; int m_iBatchCount; + + QString m_titleText; + class DockTitleBar* m_pDockTitleBar { nullptr }; }; diff --git a/src/ui/chartPlot/FitCurveDialog.cpp b/src/ui/chartPlot/FitCurveDialog.cpp index 38b9176f..d3070918 100644 --- a/src/ui/chartPlot/FitCurveDialog.cpp +++ b/src/ui/chartPlot/FitCurveDialog.cpp @@ -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())); + } + + } 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::ParseWave(const QString& strFile, std::vector>>& vecWavePoint, int iRowCount) +bool FitCurveDialog::ParseWave(const QString& strFile, std::vector>>& 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>>& vecReportPoint, int iRowCount) +bool FitCurveDialog::ParseReport(const QString& strFile, std::vector>>& 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::vectorSetDockWidgetTitleBar(nullptr); dockWidget->setWidget(this); + if (nullptr != dockWidget) { + m_titleText = dockWidget->windowTitle(); + } DockTitleBar* dockTitleBar = new DockTitleBar; + m_pDockTitleBar = dockTitleBar; if (1 == m_iType) { - dockTitleBar->SetTitle(tr("2D Curve")); + if (m_titleText.isEmpty()) + { + dockTitleBar->SetTitle(tr("2D Curve")); + } + else + { + dockTitleBar->SetTitle(m_titleText); + } } else { - dockTitleBar->SetTitle(tr("2D(y(lg)) Curve")); + if (m_titleText.isEmpty()) + { + dockTitleBar->SetTitle(tr("2D(y(lg)) Curve")); + } + else { + dockTitleBar->SetTitle(m_titleText); + } } dockWidget->SetDockWidgetTitleBar(dockTitleBar); diff --git a/src/ui/chartPlot/FitCurveDialog.h b/src/ui/chartPlot/FitCurveDialog.h index aa31ed3f..750e3345 100644 --- a/src/ui/chartPlot/FitCurveDialog.h +++ b/src/ui/chartPlot/FitCurveDialog.h @@ -29,8 +29,8 @@ public: void InitReportFile(const QString& strFile, int iBatchCount = 50); protected: - void ParseWave(const QString& strFile, std::vector < std::vector>>& vecWavePoint, int iRowCount = 50); - void ParseReport(const QString& strFile, std::vector>>& vecReportPoint, int iRowCount = 50); + bool ParseWave(const QString& strFile, std::vector < std::vector>>& vecWavePoint, int iRowCount = 50); + bool ParseReport(const QString& strFile, std::vector>>& 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); // ɾ������ void slotInserKeyPoint(int iID,float xValue, float yValue); @@ -51,14 +51,14 @@ private: FitCurveChartView* curveChartView; QChart* curveChart; - //QSplineSeries* fitPointsSeriesS; //Ҫʾԭʼ + //QSplineSeries* fitPointsSeriesS; //Ҫ��ʾ������ԭʼ���� //QScatterSeries* tipSeries; - //QSplineSeries* xGuideSeries; //λõxḨ - //QSplineSeries* yGuideSeries; //λõyḨ - bool isPressed = false; //ͼǷק - QPoint pressedPoint; //ק + //QSplineSeries* xGuideSeries; //�������λ�õ��x�Ḩ���� + //QSplineSeries* yGuideSeries; //�������λ�õ��y�Ḩ���� + bool isPressed = false; //ͼ���Ƿ�����ק�� + QPoint pressedPoint; //�����ק��� - int m_iType; // y + int m_iType; // y������ QValueAxis* m_pAxisX = NULL; QValueAxis* m_pAxisY = NULL; @@ -74,6 +74,8 @@ private: std::vector>> m_vecReportPoint; int m_iID = 1; + QString m_titleText; + class DockTitleBar* m_pDockTitleBar { nullptr }; }; #endif // FITCURVEDIALOG_H \ No newline at end of file diff --git a/src/ui/chartPlot/SurfaceDialog.cpp b/src/ui/chartPlot/SurfaceDialog.cpp index b2c0a14a..42936a8a 100644 --- a/src/ui/chartPlot/SurfaceDialog.cpp +++ b/src/ui/chartPlot/SurfaceDialog.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #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) { - // Ч + // ������Ч if (!varSeriesData.isValid()) { return; } - QVariantList varCurDataList = varSeriesData.toMap().value("Data").toList(); // - QColor color = varSeriesData.toMap().value("Color").value(); // ɫ - 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(); // ���� + QColor color = varSeriesData.toMap().value("Color").value(); // ������ɫ + 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) // ��ά���� { return; } @@ -149,7 +155,7 @@ void SurfaceDialog::slotAddSeries(QVariant varSeriesData) m_p3DYAxis->setRange(m_iMinZ, m_iMaxZ); m_p3DZAxis->setRange(m_iMinY, m_iMaxY); - // ɫʽ + // ������ɫ��ʽ 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ֵСֵ + // ����x�����ֵ��Сֵ if (m_iMinX > xValue) { m_iMinX = xValue; @@ -334,13 +340,13 @@ void SurfaceDialog::InitSurface() pLyt->addWidget(containerHandle); - // ɫʽ + // ������ɫ��ʽ 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); // ���������Ƿ�ƽ�� + m_pSeries->setFlatShadingEnabled(false); // ���û����ƽ����ɫ } void SurfaceDialog::InitScatter() @@ -358,12 +364,12 @@ void SurfaceDialog::InitScatter() pLyt->addWidget(container); } -void SurfaceDialog::ParseRD(const QString& strFile, std::vector < std::vector>>& vecRDPoint, int iBatchCount, int iRowCount) +bool SurfaceDialog::ParseRD(const QString& strFile, std::vector < std::vector>>& vecRDPoint, int iBatchCount, int iRowCount) { if (strFile.isEmpty()) { - QMessageBox::information(nullptr, QString::fromLocal8Bit("ʾ"), QString::fromLocal8Bit("RDļ·")); - return; + QMessageBox::information(nullptr, QString::fromLocal8Bit("��ʾ"), QString::fromLocal8Bit("��������RD�ļ�·����")); + return false; } QFile file(strFile); @@ -398,4 +404,5 @@ void SurfaceDialog::ParseRD(const QString& strFile, std::vector < std::vector>>& vecRDPoint, int iBatchCount = 50, int iRowCount = 64); + bool ParseRD(const QString& strFile, std::vector>>& vecRDPoint, int iBatchCount = 50, int iRowCount = 64); private: Ui::SurfaceDialog ui; @@ -54,4 +54,5 @@ private: float m_iMaxZ = 10; std::vector>> m_vecRDPoint; + class DockTitleBar* m_pDockTitleBar { nullptr }; };