add sim menu

This commit is contained in:
15712809671 2025-01-05 22:29:59 +08:00
parent f4bdb4473d
commit 3a6970b2d1
13 changed files with 230 additions and 88 deletions

View File

@ -10,6 +10,8 @@
#include <QFont>
#include <qdebug.h>
#include "../../workspace/WorkSpaceManager.h"
#include "SyntaxHighlighter.h"
#include "../DockTitleBar.h"
@ -32,12 +34,19 @@ CodeEdtUI::CodeEdtUI(QWidget *parent)
// ´´½¨²Ëµ¥
QMenu* fileMenu = menuBar()->addMenu(tr("&file"));
QAction* openAction = new QAction(tr("&Import the template"), this);
QAction* openMainAction = new QAction(tr("&Import the Main template"), this);
QAction* openLDAction = new QAction(tr("&Import the LD template"), this);
QAction* openSeekerSimAction = new QAction(tr("&Import the SeekerSim template"), this);
QAction* saveAction = new QAction(tr("&save"), this);
fileMenu->addAction(openAction);
fileMenu->addAction(openMainAction);
fileMenu->addAction(openLDAction);
fileMenu->addAction(openSeekerSimAction);
fileMenu->addAction(saveAction);
connect(openAction, &QAction::triggered, this, &CodeEdtUI::openFile);
connect(openMainAction, &QAction::triggered, this, &CodeEdtUI::openMainFile);
connect(openLDAction, &QAction::triggered, this, &CodeEdtUI::openLDFile);
connect(openSeekerSimAction, &QAction::triggered, this, &CodeEdtUI::openSeekerSimFile);
connect(saveAction, &QAction::triggered, this, &CodeEdtUI::saveFile);
// ״̬À¸
@ -61,11 +70,19 @@ void CodeEdtUI::AttachDock(DockWidget* dockWidget)
dockWidget->SetDockWidgetTitleBar(dockTitleBar);
}
void CodeEdtUI::openFile() {
QString fileName = QFileDialog::getOpenFileName(this, "Open File", "", "Matlab Files (*.m)");
void CodeEdtUI::openMainFile() {
QString fileName = WorkSpaceManager::Get().GetDYTMMainFile(); //QFileDialog::getOpenFileName(this, "Open File", "", "Matlab Files (*.m)");
if (fileName.isEmpty())
{
fileName = QFileDialog::getOpenFileName(this, "Open File", "", "Matlab Files (*.m)");
WorkSpaceManager::Get().SetDYTMMainFile(fileName);
}
if (!fileName.isEmpty()) {
QFile file(fileName);
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
editor->clear();
QTextStream in(&file);
editor->setPlainText(in.readAll());
file.close();
@ -73,10 +90,56 @@ void CodeEdtUI::openFile() {
}
}
void CodeEdtUI::saveFile() {
QString fileName = QFileDialog::getSaveFileName(this, "Save File", "", "Matlab Files (*.m)");
void CodeEdtUI::openLDFile()
{
QString fileName = WorkSpaceManager::Get().GetDYTMLDFile(); //QFileDialog::getOpenFileName(this, "Open File", "", "Matlab Files (*.m)");
if (fileName.isEmpty())
{
fileName = QFileDialog::getOpenFileName(this, "Open File", "", "Matlab Files (*.m)");
WorkSpaceManager::Get().SetDYTMLDFile(fileName);
}
if (!fileName.isEmpty()) {
QFile file(fileName);
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
editor->clear();
QTextStream in(&file);
editor->setPlainText(in.readAll());
file.close();
m_strCurOpenFile = fileName;
}
}
}
void CodeEdtUI::openSeekerSimFile()
{
QString fileName = WorkSpaceManager::Get().GetDYTMSeekerSimFile(); //QFileDialog::getOpenFileName(this, "Open File", "", "Matlab Files (*.m)");
if (fileName.isEmpty())
{
fileName = QFileDialog::getOpenFileName(this, "Open File", "", "Matlab Files (*.m)");
WorkSpaceManager::Get().SetDYTMSeekerSimFile(fileName);
}
if (!fileName.isEmpty()) {
QFile file(fileName);
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
editor->clear();
QTextStream in(&file);
editor->setPlainText(in.readAll());
file.close();
m_strCurOpenFile = fileName;
}
}
}
void CodeEdtUI::saveFile() {
//QString fileName = QFileDialog::getSaveFileName(this, "Save File", "", "Matlab Files (*.m)");
if (!m_strCurOpenFile.isEmpty()) {
QFile file(m_strCurOpenFile);
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QTextStream out(&file);
out << editor->toPlainText();

View File

@ -12,7 +12,10 @@ public:
void AttachDock(class DockWidget* dockWidget);
protected slots:
void openFile();
void openMainFile();
void openLDFile();
void openSeekerSimFile();
void saveFile();
private:
@ -20,5 +23,7 @@ private:
class QPlainTextEdit* editor;
QString m_strCurOpenFile;
class SyntaxHighlighter* syntaxHighlighter{ nullptr };
};

View File

@ -108,10 +108,8 @@ void MainFrame::InitUI() {
PlayManagerMenu* playMenu = new PlayManagerMenu(this);
AddMenuWidget("play_manager", tr("play manager"), playMenu);
// ChartPlotMenu *chartMenu = new ChartPlotMenu(this);
// AddMenuWidget("chartPlot_manager", tr("chartPlot manager"), chartMenu);
ChartPlotMenu *chartMenu = new ChartPlotMenu(this);
AddMenuWidget("simu_manager", tr("simu manager"), chartMenu);
MainWindow* mainWindow = new MainWindow(this);
layout->addWidget(mainWindow);
@ -120,14 +118,6 @@ void MainFrame::InitUI() {
connect(fileMenu, &FileManagerMenu::LoadDyt, viewWidget, &QtOsgViewWidget::OnLoadDyt);
connect(viewWidget, &QtOsgViewWidget::signalResetWorkSpace, mainWindow, &MainWindow::slotResetWorkSpace);
//connect(chartMenu, &ChartPlotMenu::signalAddCurve, mainWindow->GetFitCurveDlg(), &FitCurveDialog::slotAddSeries);
//connect(chartMenu, &ChartPlotMenu::signalDelCurve, mainWindow->GetFitCurveDlg(), &FitCurveDialog::slotDelCurve);
//connect(chartMenu, &ChartPlotMenu::signalAddLgCurve, mainWindow->GetFitYLgCurveDlg(), &FitCurveDialog::slotAddSeries);
//connect(chartMenu, &ChartPlotMenu::signalDelLgCurve, mainWindow->GetFitYLgCurveDlg(), &FitCurveDialog::slotDelCurve);
//connect(chartMenu, &ChartPlotMenu::signalAddSurfaceCurve, mainWindow->GetSurfaceDlg(), &SurfaceDialog::slotAddSeries);
connect(system_, &SystemManagerMenu::signalShowUISetting, mainWindow, &MainWindow::slotShowUISetting);
if (ui->menuWidget->count() > 0) {

View File

@ -1,9 +1,10 @@
#include "ChartPlotMenu.h"
#include "../chartPlot/DYTChart.h"
#include "../Matlab/MatlabObject.h"
#include "workspace/WorkSpace.h"
#include "workspace/WorkSpaceManager.h"
#include <qmessagebox.h>
ChartPlotMenu::ChartPlotMenu(QWidget *parent)
: QWidget(parent)
@ -20,33 +21,16 @@ ChartPlotMenu::~ChartPlotMenu()
void ChartPlotMenu::InitMenu()
{
/*if (!m_p2DChart)
{
m_p2DChart = new DYTChart(1);
WorkSpaceManager::Get().SetDYTChart2D(m_p2DChart);
connect(m_p2DChart, &DYTChart::signalAddCurve, this, &ChartPlotMenu::signalAddCurve);
connect(m_p2DChart, &DYTChart::signalDelCurve, this, &ChartPlotMenu::signalDelCurve);
}
if (!m_p2DLgChart)
{
m_p2DLgChart = new DYTChart(2);
WorkSpaceManager::Get().SetDYTChart2DLg(m_p2DLgChart);
connect(m_p2DLgChart, &DYTChart::signalAddLgCurve, this, &ChartPlotMenu::signalAddLgCurve);
connect(m_p2DLgChart, &DYTChart::signalDelLgCurve, this, &ChartPlotMenu::signalDelLgCurve);
}
if (!m_p3DChart)
{
m_p3DChart = new DYTChart(3);
WorkSpaceManager::Get().SetDYTChart3D(m_p3DChart);
connect(m_p3DChart, &DYTChart::signalAddSurfaceCurve, this, &ChartPlotMenu::signalAddSurfaceCurve);
}*/
connect(ui.toolButton, &QToolButton::clicked, this, [=] {
MatlabObject mtlb;
QString strFile = WorkSpaceManager::Get().GetDYTMMainFile();
if (!strFile.isEmpty())
{
mtlb.RunMatlabFile(strFile);
}
else
{
QMessageBox::information(nullptr, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("请检查仿真文件路径是否存在!"));
}
});
}

View File

@ -17,18 +17,9 @@ protected:
void InitMenu();
signals:
void signalAddCurve(QVariant varCurve); // Ìí¼ÓÇúÏß
void signalDelCurve(int iID); // ɾ³ýÇúÏß
void signalAddLgCurve(QVariant varCurve); // Ìí¼ÓÇúÏß
void signalDelLgCurve(int iID); // ɾ³ýÇúÏß
void signalAddSurfaceCurve(QVariant varCurve); // Ìí¼ÓÇúÏß
private:
Ui::ChartPlotMenuClass ui;
DYTChart* m_p2DChart = NULL;
DYTChart* m_p2DLgChart = NULL;
DYTChart* m_p3DChart = NULL;
};

View File

@ -25,33 +25,7 @@
</size>
</property>
<property name="text">
<string>2D Curver</string>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="toolButton_3">
<property name="minimumSize">
<size>
<width>60</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>2D(lg) Curver</string>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="toolButton_2">
<property name="minimumSize">
<size>
<width>60</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>3D Curver</string>
<string>Run Simu</string>
</property>
</widget>
</item>

View File

@ -0,0 +1,10 @@
#include "SimuRunMenu.h"
SimuRunMenu::SimuRunMenu(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
}
SimuRunMenu::~SimuRunMenu()
{}

16
src/ui/Menu/SimuRunMenu.h Normal file
View File

@ -0,0 +1,16 @@
#pragma once
#include <QWidget>
#include "ui_SimuRunMenu.h"
class SimuRunMenu : public QWidget
{
Q_OBJECT
public:
SimuRunMenu(QWidget *parent = nullptr);
~SimuRunMenu();
private:
Ui::SimuRunMenuClass ui;
};

View File

@ -0,0 +1,22 @@
<UI version="4.0" >
<class>SimuRunMenuClass</class>
<widget class="QWidget" name="SimuRunMenuClass" >
<property name="objectName" >
<string notr="true">SimuRunMenuClass</string>
</property>
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>400</height>
</rect>
</property>
<property name="windowTitle" >
<string>SimuRunMenu</string>
</property>$centralwidget$
</widget>
<layoutDefault spacing="6" margin="11" />
<pixmapfunction></pixmapfunction>
<connections/>
</UI>

View File

@ -435,7 +435,9 @@ void TargetListWgt::UpdatePageData(int iPageNum)
for (int iCol = 0; iCol < varColList.size(); iCol++)
{
ui.tableWidget->setItem(iRow, iCol, new QTableWidgetItem(varColList[iCol].toString()));
QString strVal;
strVal.sprintf("%.6f", varColList[iCol].toFloat());
ui.tableWidget->setItem(iRow, iCol, new QTableWidgetItem(strVal));
}
iRow++;

View File

@ -47,6 +47,24 @@ public:
return true;
}
bool SetDYTMMainFile(const QString& file)
{
m_mMainFile = file;
return true;
}
bool SetDYTMLDFile(const QString& file)
{
m_mLDFile = file;
return true;
}
bool SetDYTMSeekerSimFile(const QString& file)
{
m_mSeekerSimFile = file;
return true;
}
QString GetDYTWaveFile()
{
return m_waveFile;
@ -62,6 +80,21 @@ public:
return m_rdFile;
}
QString GetDYTMMainFile()
{
return m_mMainFile;
}
QString GetDYTMLDFile()
{
return m_mLDFile;
}
QString GetDYTMSeekerSimFile()
{
return m_mSeekerSimFile;
}
void OnFrame();
signals:
@ -79,4 +112,9 @@ private:
QString m_waveFile;
QString m_reportFile;
QString m_rdFile;
QString m_mMainFile;
QString m_mLDFile;
QString m_mSeekerSimFile;
};

View File

@ -127,7 +127,36 @@ bool WorkSpaceXMLParse::ParseChart(const tinyxml2::XMLElement* element)
attribute = attribute->Next();
}
}
else if (0 == strcmp(name, "MMain"))
{
QVariantMap varChart;
const tinyxml2::XMLAttribute* attribute = xmlElement->FirstAttribute();
while (nullptr != attribute) {
WorkSpaceManager::Get().SetDYTMMainFile(QString::fromLocal8Bit(attribute->Value()));
attribute = attribute->Next();
}
}
else if (0 == strcmp(name, "MLD"))
{
QVariantMap varChart;
const tinyxml2::XMLAttribute* attribute = xmlElement->FirstAttribute();
while (nullptr != attribute) {
WorkSpaceManager::Get().SetDYTMLDFile(QString::fromLocal8Bit(attribute->Value()));
attribute = attribute->Next();
}
}
else if (0 == strcmp(name, "MSeekerSim"))
{
QVariantMap varChart;
const tinyxml2::XMLAttribute* attribute = xmlElement->FirstAttribute();
while (nullptr != attribute) {
WorkSpaceManager::Get().SetDYTMSeekerSimFile(QString::fromLocal8Bit(attribute->Value()));
attribute = attribute->Next();
}
}
xmlElement = xmlElement->NextSiblingElement();
}

View File

@ -108,5 +108,23 @@ bool WorkSpaceXMLWrite::SaveChart(tinyxml2::XMLElement* scene, tinyxml2::XMLDocu
chart->SetAttribute("RD", WorkSpaceManager::Get().GetDYTRDFile().toLocal8Bit().constData());
}
{
tinyxml2::XMLElement* chart = doc->NewElement("MMain");
charts->LinkEndChild(chart);
chart->SetAttribute("MMain", WorkSpaceManager::Get().GetDYTMMainFile().toLocal8Bit().constData());
}
{
tinyxml2::XMLElement* chart = doc->NewElement("MLD");
charts->LinkEndChild(chart);
chart->SetAttribute("MLD", WorkSpaceManager::Get().GetDYTMLDFile().toLocal8Bit().constData());
}
{
tinyxml2::XMLElement* chart = doc->NewElement("MSeekerSim");
charts->LinkEndChild(chart);
chart->SetAttribute("MSeekerSim", WorkSpaceManager::Get().GetDYTMSeekerSimFile().toLocal8Bit().constData());
}
return true;
}