diff --git a/CFDStruct/CFDStructGUI/CFDStructGUI.pro b/CFDStruct/CFDStructGUI/CFDStructGUI.pro index b62ccd1..74ab00c 100644 --- a/CFDStruct/CFDStructGUI/CFDStructGUI.pro +++ b/CFDStruct/CFDStructGUI/CFDStructGUI.pro @@ -5,8 +5,8 @@ TARGET = CFDStructGUI QT += core widgets gui DEFINES += CFDStructGUI_API -SUBDIRS += \ - $$PWD/CFDStructGUI \ +#SUBDIRS += \ +# $$PWD/CFDStructGUI \ INCLUDEPATH += \ ./ \ @@ -34,6 +34,7 @@ win32{ -lGUIFrame \ -lCUIProperty \ -lGUIWidget \ + -lFITKCore \ Debug:CONFIG += console @@ -47,6 +48,7 @@ win32{ -lGUIFrame \ -lCUIProperty \ -lGUIWidget \ + -lFITKCore \ Debug:LIBS += -L$$PWD/../../Tools/Win64/SARibbon/libd/ \ -lSARibbonBard \ diff --git a/CFDStruct/CFDStructGUI/CFDTreeWidget.cpp b/CFDStruct/CFDStructGUI/CFDTreeWidget.cpp index aee8cc2..f5c6ec0 100644 --- a/CFDStruct/CFDStructGUI/CFDTreeWidget.cpp +++ b/CFDStruct/CFDStructGUI/CFDTreeWidget.cpp @@ -4,210 +4,189 @@ #include #include #include +#include +#include -namespace GUI{ +namespace GUI { CFDTreeWidget::CFDTreeWidget(QWidget* parent, PropertyWidget* m_PropertyWidget): - TreeWidget(parent) - { + TreeWidget(parent) { this->m_PropertyWidget = m_PropertyWidget; - //右键 不可少否则右键无反应 setContextMenuPolicy(Qt::CustomContextMenu); connect(this, SIGNAL(itemClicked(QTreeWidgetItem*, int)), this, SLOT(onItemClicked(QTreeWidgetItem*, int))); connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(onModelCustomContextMenu(QPoint))); - - } - void CFDTreeWidget::updateTree(QString s){ + void CFDTreeWidget::updateTree(QString s) { this->clear(); - if(s == "SolutionAnalysis") + if (s == "SolutionAnalysis") { addTreeSolutionAnalysis(); - else if(s == "Postprocessing") + + } else if (s == "Postprocessing") { addTreePostprocessing(); - else if(s == "Preprocessing") + + } else if (s == "Preprocessing") { addTreePreprocessing(); + } setItemsExpandable(true); expandAll(); } - void CFDTreeWidget::addTreePreprocessing(){ + void CFDTreeWidget::addTreePreprocessing() { QTreeWidgetItem* GeometryAndMeshingItem = new QTreeWidgetItem(); - GeometryAndMeshingItem->setText(0,tr("Preprocessing")); - GeometryAndMeshingItem->setData(1,0,-1); + GeometryAndMeshingItem->setText(0, tr("Preprocessing")); + GeometryAndMeshingItem->setData(1, 0, -1); // GeometryAndMeshingItem->setData(2, 0, QVariant::fromValue(GUI::MainTreeEnum::MainTree_Mesh)); this->addTopLevelItem(GeometryAndMeshingItem); } - void CFDTreeWidget::addTreeSolutionAnalysis() - { + void CFDTreeWidget::addTreeSolutionAnalysis() { QTreeWidgetItem* GeometryAndMeshingItem = new QTreeWidgetItem(); - GeometryAndMeshingItem->setText(0,tr("Geometry and Meshing")); - GeometryAndMeshingItem->setData(1,0,-1); + GeometryAndMeshingItem->setText(0, tr("Geometry and Meshing")); + GeometryAndMeshingItem->setData(1, 0, -1); // GeometryAndMeshingItem->setData(2, 0, QVariant::fromValue(GUI::MainTreeEnum::MainTree_Mesh)); this->addTopLevelItem(GeometryAndMeshingItem); - QTreeWidgetItem* mesh = new QTreeWidgetItem(); - mesh->setText(0,tr("Mesh001")); - mesh->setData(1,0,-1); + mesh->setText(0, tr("Mesh001")); + mesh->setData(1, 0, -1); GeometryAndMeshingItem->addChild(mesh); - - QTreeWidgetItem* ComputationalSetupItem = new QTreeWidgetItem(); - ComputationalSetupItem->setText(0,tr("Computational Setup")); - ComputationalSetupItem->setData(1,0,-1); + ComputationalSetupItem->setText(0, tr("Computational Setup")); + ComputationalSetupItem->setData(1, 0, -1); this->addTopLevelItem(ComputationalSetupItem); - QTreeWidgetItem* TimeModeItem = new QTreeWidgetItem(); - TimeModeItem->setText(0,tr("Time Mode")); - TimeModeItem->setData(1,0,-1); + TimeModeItem->setText(0, tr("actionCFDTimeMode")); + TimeModeItem->setData(1, 0, -1); ComputationalSetupItem->addChild(TimeModeItem); - QTreeWidgetItem* ComputationalDomainItem = new QTreeWidgetItem(); - ComputationalDomainItem->setText(0,tr("Computational Domain")); - ComputationalDomainItem->setData(1,0,-1); + ComputationalDomainItem->setText(0, tr("Computational Domain")); + ComputationalDomainItem->setData(1, 0, -1); ComputationalSetupItem->addChild(ComputationalDomainItem); - - QTreeWidgetItem* SolverItem = new QTreeWidgetItem(); - SolverItem->setText(0,tr("Solver")); - SolverItem->setData(1,0,-1); + SolverItem->setText(0, tr("Solver")); + SolverItem->setData(1, 0, -1); ComputationalDomainItem->addChild(SolverItem); - QTreeWidgetItem* BasicModelItem = new QTreeWidgetItem(); - BasicModelItem->setText(0,tr("Basic Model")); - BasicModelItem->setData(1,0,-1); + BasicModelItem->setText(0, tr("Basic Model")); + BasicModelItem->setData(1, 0, -1); SolverItem->addChild(BasicModelItem); QTreeWidgetItem* ViscosityModelItem = new QTreeWidgetItem(); - ViscosityModelItem->setText(0,tr("Viscosity Model")); - ViscosityModelItem->setData(1,0,-1); + ViscosityModelItem->setText(0, tr("Viscosity Model")); + ViscosityModelItem->setData(1, 0, -1); SolverItem->addChild(ViscosityModelItem); QTreeWidgetItem* NumericalMethodsItem = new QTreeWidgetItem(); - NumericalMethodsItem->setText(0,tr("Numerical Methods")); - NumericalMethodsItem->setData(1,0,-1); + NumericalMethodsItem->setText(0, tr("Numerical Methods")); + NumericalMethodsItem->setData(1, 0, -1); SolverItem->addChild(NumericalMethodsItem); - - QTreeWidgetItem* MotionPropertiesItem = new QTreeWidgetItem(); - MotionPropertiesItem->setText(0,tr("Motion Properties")); - MotionPropertiesItem->setData(1,0,-1); + MotionPropertiesItem->setText(0, tr("Motion Properties")); + MotionPropertiesItem->setData(1, 0, -1); ComputationalDomainItem->addChild(MotionPropertiesItem); - QTreeWidgetItem* motion1Item = new QTreeWidgetItem(); - motion1Item->setText(0,tr("motion-1")); - motion1Item->setData(1,0,-1); + motion1Item->setText(0, tr("motion-1")); + motion1Item->setData(1, 0, -1); MotionPropertiesItem->addChild(motion1Item); - QTreeWidgetItem* BoundaryConditionsItem = new QTreeWidgetItem(); - BoundaryConditionsItem->setText(0,tr("Boundary Conditions")); - BoundaryConditionsItem->setData(1,0,-1); + BoundaryConditionsItem->setText(0, tr("Boundary Conditions")); + BoundaryConditionsItem->setData(1, 0, -1); ComputationalDomainItem->addChild(BoundaryConditionsItem); - QTreeWidgetItem* pressureinletItem = new QTreeWidgetItem(); - pressureinletItem->setText(0,tr("pressure-inlet")); - pressureinletItem->setData(1,0,-1); + pressureinletItem->setText(0, tr("pressure-inlet")); + pressureinletItem->setData(1, 0, -1); BoundaryConditionsItem->addChild(pressureinletItem); - - QTreeWidgetItem* InitializationItem = new QTreeWidgetItem(); - InitializationItem->setText(0,tr("Initialization")); - InitializationItem->setData(1,0,-1); + InitializationItem->setText(0, tr("Initialization")); + InitializationItem->setData(1, 0, -1); ComputationalDomainItem->addChild(InitializationItem); - - QTreeWidgetItem* ComputationalControlItem = new QTreeWidgetItem(); - ComputationalControlItem->setText(0,tr("Computational Control")); - ComputationalControlItem->setData(1,0,-1); + ComputationalControlItem->setText(0, tr("Computational Control")); + ComputationalControlItem->setData(1, 0, -1); ComputationalDomainItem->addChild(ComputationalControlItem); - QTreeWidgetItem* ReferenceQuantityItem = new QTreeWidgetItem(); - ReferenceQuantityItem->setText(0,tr("reference quantity")); - ReferenceQuantityItem->setData(1,0,-1); + ReferenceQuantityItem->setText(0, tr("reference quantity")); + ReferenceQuantityItem->setData(1, 0, -1); ComputationalControlItem->addChild(ReferenceQuantityItem); - - - QTreeWidgetItem* MonitorsItem = new QTreeWidgetItem(); - MonitorsItem->setText(0,tr("Monitors")); - MonitorsItem->setData(1,0,-1); + MonitorsItem->setText(0, tr("Monitors")); + MonitorsItem->setData(1, 0, -1); ComputationalDomainItem->addChild(MonitorsItem); - QTreeWidgetItem* ResidualItem = new QTreeWidgetItem(); - ResidualItem->setText(0,tr("Residual")); - ResidualItem->setData(1,0,-1); + ResidualItem->setText(0, tr("Residual")); + ResidualItem->setData(1, 0, -1); MonitorsItem->addChild(ResidualItem); QTreeWidgetItem* AerodynamicForceItem = new QTreeWidgetItem(); - AerodynamicForceItem->setText(0,tr("Aerodynamic Force")); - AerodynamicForceItem->setData(1,0,-1); + AerodynamicForceItem->setText(0, tr("Aerodynamic Force")); + AerodynamicForceItem->setData(1, 0, -1); MonitorsItem->addChild(AerodynamicForceItem); QTreeWidgetItem* TurbomachineryPerformanceItem = new QTreeWidgetItem(); - TurbomachineryPerformanceItem->setText(0,tr("Turbomachinery Performance")); - TurbomachineryPerformanceItem->setData(1,0,-1); + TurbomachineryPerformanceItem->setText(0, tr("Turbomachinery Performance")); + TurbomachineryPerformanceItem->setData(1, 0, -1); MonitorsItem->addChild(TurbomachineryPerformanceItem); - } - void CFDTreeWidget::addTreePostprocessing() - { + void CFDTreeWidget::addTreePostprocessing() { // _treePostprocessing = new TreeWidget(this); // tabWidget->addTab(_treePostprocessing,tr("Postprocessing")); // qDebug()<<"!!!"; - - QTreeWidgetItem* PostProcessingItem = new QTreeWidgetItem(); - PostProcessingItem->setText(0,tr("Post-processing")); - PostProcessingItem->setData(1,0,-1); + PostProcessingItem->setText(0, tr("Post-processing")); + PostProcessingItem->setData(1, 0, -1); this->addTopLevelItem(PostProcessingItem); - QTreeWidgetItem* MeshItem = new QTreeWidgetItem(); - MeshItem->setText(0,tr("Mesh")); - MeshItem->setData(1,0,-1); + MeshItem->setText(0, tr("Mesh")); + MeshItem->setData(1, 0, -1); PostProcessingItem->addChild(MeshItem); - QTreeWidgetItem* Mesh1Item = new QTreeWidgetItem(); - Mesh1Item->setText(0,tr("Mesh 1")); - Mesh1Item->setData(1,0,-1); + Mesh1Item->setText(0, tr("Mesh 1")); + Mesh1Item->setData(1, 0, -1); MeshItem->addChild(Mesh1Item); QTreeWidgetItem* Interface1Item = new QTreeWidgetItem(); - Interface1Item->setText(0,tr("Interface 1")); - Interface1Item->setData(1,0,-1); + Interface1Item->setText(0, tr("Interface 1")); + Interface1Item->setData(1, 0, -1); MeshItem->addChild(Interface1Item); - - QTreeWidgetItem* CuttingPlaneItem = new QTreeWidgetItem(); - CuttingPlaneItem->setText(0,tr("Cutting Plane")); - CuttingPlaneItem->setData(1,0,-1); + CuttingPlaneItem->setText(0, tr("Cutting Plane")); + CuttingPlaneItem->setData(1, 0, -1); PostProcessingItem->addChild(CuttingPlaneItem); - QTreeWidgetItem* IsosurfaceItem = new QTreeWidgetItem(); - IsosurfaceItem->setText(0,tr("Isosurface")); - IsosurfaceItem->setData(1,0,-1); + IsosurfaceItem->setText(0, tr("Isosurface")); + IsosurfaceItem->setData(1, 0, -1); PostProcessingItem->addChild(IsosurfaceItem); - QTreeWidgetItem* StreamlineItem = new QTreeWidgetItem(); - StreamlineItem->setText(0,tr("Streamline")); - StreamlineItem->setData(1,0,-1); + StreamlineItem->setText(0, tr("Streamline")); + StreamlineItem->setData(1, 0, -1); PostProcessingItem->addChild(StreamlineItem); - QTreeWidgetItem* DataStatisticsItem = new QTreeWidgetItem(); - DataStatisticsItem->setText(0,tr("Data Statistics")); - DataStatisticsItem->setData(1,0,-1); + DataStatisticsItem->setText(0, tr("Data Statistics")); + DataStatisticsItem->setData(1, 0, -1); PostProcessingItem->addChild(DataStatisticsItem); - QTreeWidgetItem* ForceAndMomentItem = new QTreeWidgetItem(); - ForceAndMomentItem->setText(0,tr("Force and Moment")); - ForceAndMomentItem->setData(1,0,-1); + ForceAndMomentItem->setText(0, tr("Force and Moment")); + ForceAndMomentItem->setData(1, 0, -1); DataStatisticsItem->addChild(ForceAndMomentItem); + } + void CFDTreeWidget::onItemClicked(QTreeWidgetItem* item, int column) { + qDebug() << item->text(0); + int objID = item->data(1, 0).toInt(); + QString name = item->text(0); - } + if (!name.isEmpty()) { + QObject sender; + sender.setObjectName(name); + auto acOper = Core::FITKOperatorRepo::getInstance()->getOperatorT(name); + + if (acOper == nullptr) { + return; + } - void CFDTreeWidget::onItemClicked(QTreeWidgetItem *item, int column) - { - qDebug()<text(0); + acOper->setEmitter(&sender); + acOper->setArgs("objID", objID); + acOper->actionTriggered(); + } } diff --git a/GUIFrame/MainTreeWidget.cpp b/GUIFrame/MainTreeWidget.cpp index 1543f9a..cade53c 100644 --- a/GUIFrame/MainTreeWidget.cpp +++ b/GUIFrame/MainTreeWidget.cpp @@ -3,11 +3,9 @@ #include "GUIWidget/TreeWidget.h" #include -namespace GUI -{ +namespace GUI { MainTreeWidget::MainTreeWidget(MainWindow* parent) : - PanelWidgetBase(parent) - { + PanelWidgetBase(parent) { this->setTitle(tr("Tree")); _treeWidget = new TreeWidget(this); @@ -16,18 +14,15 @@ namespace GUI init(); } - MainTreeWidget::~MainTreeWidget() - { - if (_treeWidget)delete _treeWidget; + MainTreeWidget::~MainTreeWidget() { + //if (_treeWidget)delete _treeWidget; } - void MainTreeWidget::init() - { + void MainTreeWidget::init() { _treeWidget->updateTree(); } - TreeWidget * MainTreeWidget::getTreeWidget() - { + TreeWidget* MainTreeWidget::getTreeWidget() { return _treeWidget; } } diff --git a/OperatorsModel/OperatorsCFDTimeMode.cpp b/OperatorsModel/OperatorsCFDTimeMode.cpp new file mode 100644 index 0000000..76b7bbb --- /dev/null +++ b/OperatorsModel/OperatorsCFDTimeMode.cpp @@ -0,0 +1,40 @@ +#include "OperatorsCFDTimeMode.h" + +#include "GUIFrame/PropertyWidget.h" +#include "OperatorsInterface/TreeEventOperator.h" +#include "GUIDialog/GUICalculateDialog/SolutionWidget.h" + +#include "FITK_Kernel/FITKAppFramework/FITKAppFramework.h" +#include "FITK_Kernel/FITKAppFramework/FITKGlobalData.h" + +namespace ModelOper +{ + OperatorsCFDTimeMode::OperatorsCFDTimeMode() + { + } + + OperatorsCFDTimeMode::~OperatorsCFDTimeMode() + { + } + + bool OperatorsCFDTimeMode::execGUI() + { + GUI::MainWindow* mainWindow = dynamic_cast(FITKAPP->getGlobalData()->getMainWindow()); + if (mainWindow == nullptr) { + return false; + } + GUI::PropertyWidget* propertyWidget = mainWindow->getPropertyWidget(); + if (propertyWidget == nullptr) { + return false; + } + GUI::SolutionWidget* widget = new GUI::SolutionWidget(this, propertyWidget); + propertyWidget->setWidget(widget); + return true; + } + + bool OperatorsCFDTimeMode::execProfession() + { + return true; + } +} + diff --git a/OperatorsModel/OperatorsCFDTimeMode.h b/OperatorsModel/OperatorsCFDTimeMode.h new file mode 100644 index 0000000..5d73862 --- /dev/null +++ b/OperatorsModel/OperatorsCFDTimeMode.h @@ -0,0 +1,59 @@ +/** + * + * @file OperatorsCFDTimeMode.h + * @brief 求解器流场解操作器 + * @author BaGuijun (baguijun@163.com) + * @date 2024-08-14 + * + */ +#ifndef _OperatorsCFDTimeMode_H +#define _OperatorsCFDTimeMode_H + +#include "OperManagerBase.h" + +namespace ModelOper +{ + /** + * @brief 求解器流场解操作器 + * @author BaGuijun (baguijun@163.com) + * @date 2024-08-14 + */ + class OperatorsCFDTimeMode : public OperManagerBase + { + Q_OBJECT; + public: + /** + * @brief Construct a new Operators Solution object + * @author BaGuijun (baguijun@163.com) + * @date 2024-08-14 + */ + OperatorsCFDTimeMode(); + /** + * @brief Destroy the Operators Solution object + * @author BaGuijun (baguijun@163.com) + * @date 2024-08-14 + */ + ~OperatorsCFDTimeMode(); + /** + * @brief 执行 + * @return true 成功 + * @return false 失败 + * @author BaGuijun (baguijun@163.com) + * @date 2024-08-14 + */ + virtual bool execGUI(); + /** + * @brief 执行结果处理 + * @return true 成功 + * @return false 失败 + * @author BaGuijun (baguijun@163.com) + * @date 2024-08-14 + */ + virtual bool execProfession(); + }; + + // 按钮注册相关操作 + Register2FITKOPeratorRepo(actionCFDTimeMode, OperatorsCFDTimeMode); +} + +#endif diff --git a/OperatorsModel/OperatorsModel.pri b/OperatorsModel/OperatorsModel.pri index 0af6ede..3026859 100644 --- a/OperatorsModel/OperatorsModel.pri +++ b/OperatorsModel/OperatorsModel.pri @@ -22,6 +22,7 @@ HEADERS += \ $$PWD/OperatorsDiscretization.h \ $$PWD/OperatorsSolution.h \ $$PWD/OperatorsBoundaryConditions.h \ + OperatorsCFDTimeMode.h \ $$PWD/OperatorsInitial.h \ $$PWD/OperatorsRun.h \ $$PWD/OperatorsPost.h \ @@ -52,6 +53,7 @@ SOURCES += \ $$PWD/OperatorsDiscretization.cpp \ $$PWD/OperatorsSolution.cpp \ $$PWD/OperatorsBoundaryConditions.cpp \ + OperatorsCFDTimeMode.cpp \ $$PWD/OperatorsInitial.cpp \ $$PWD/OperatorsRun.cpp \ $$PWD/OperatorsPost.cpp \