You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AppFlow/CFDStruct/CFDStructMain/CFDStructMainWindow.cpp

272 lines
11 KiB
C++

#include "CFDStructMainWindow.h"
#include "CFDMainTreeWidget.h"
#include "GUIFrame/PropertyWidget.h"
#include "GUIFrame/MainTreeWidget.h"
#include "GUIFrame/RenderWidget.h"
#include "GUIFrame/TabWidget.h"
3 weeks ago
#include "CUIProperty/CUIConfig.h"
#include "CUIProperty/CUI.h"
#include "FITK_Kernel/FITKCore/FITKAbstractGUIObject.h"
#include "Tools/Win64/SARibbon/include/SARibbon-2.0.1/SARibbonMainWindow.h"
#include "Tools/Win64/SARibbon/include/SARibbon-2.0.1/SARibbonPannelItem.h"
#include "Tools/Win64/SARibbon/include/SARibbon-2.0.1/SARibbonBar.h"
#include <Tools/Win64/SARibbon/include/SARibbon-2.0.1/SARibbonApplicationButton.h>
#include <Tools/Win64/SARibbon/include/SARibbon-2.0.1/SARibbonQuickAccessBar.h>
#include <Tools/Win64/SARibbon/include/SARibbon-2.0.1/SARibbonTabBar.h>
#include <QDebug>
3 weeks ago
#include <QGroupBox>
#include <QRadioButton>
#include <QSplitter>
#include <QTreeWidgetItem>
#include "CFDStructOperatorsModel/CFDStructOperatorsTimeModeManager.h"
//CFDStructMainWindow::CFDStructMainWindow() : GUI::MainWindow()
//{
// qDebug()<<"new CFSStructMainWindow";
//}
//
//void CFDStructMainWindow::initCentralWidget() {
// qDebug() << "CFDStruct iniCentralWidget";
//
//}
using namespace GUI;
CFDStructMainWindow::CFDStructMainWindow()
{
qDebug() << "new Empty CFDStructMainWindow";
initMainWindowMenu();
initCentralWidget();
initPropertyWidget();
3 weeks ago
setWindowTitle("AreoFlow");
}
void CFDStructMainWindow::initCentralWidget()
{
// 子部件水平排布
QSplitter* spliterLayout = new QSplitter(Qt::Horizontal);
spliterLayout->setMouseTracking(true);
spliterLayout->setHandleWidth(5);
int mainWindSize = QMainWindow::width();
// _treeWidget = new MainTreeWidget(this);
m_PropertyWidget = new PropertyWidget(this);
m_PropertyWidget->setMinimumWidth(mainWindSize * 0.65);
_treeWidget = new CFDMainTreeWidget(this, m_PropertyWidget);
_treeWidget->setMinimumWidth(mainWindSize * 0.4);
_treeWidget->setMaximumWidth(mainWindSize * 0.4);
m_RenderWidget = new RenderWidget(this);
_tabWidgete = new TabWidget(this);
//m_GroupPropertyWidget = new GroupPropertyWidget(this);
//添加树界面
spliterLayout->addWidget(_treeWidget);
//添加属性界面
spliterLayout->addWidget(m_PropertyWidget);
QSplitter* verLayout = new QSplitter(Qt::Vertical);
spliterLayout->setMouseTracking(true);
spliterLayout->setHandleWidth(5);
verLayout->addWidget(m_RenderWidget);
verLayout->addWidget(_tabWidgete);
spliterLayout->addWidget(verLayout);
//spliterLayout->addWidget(m_GroupPropertyWidget);
// 设置大小
spliterLayout->setSizes({ 200, 300, 1000, 200 });
auto mainLayout = new QGridLayout();
mainLayout->setObjectName("CentralGridLayout");
mainLayout->setContentsMargins(5, 5, 5, 10);
mainLayout->addWidget(spliterLayout);
_currentWidget->setLayout(mainLayout);
setCentralWidget(_currentWidget);
}
void CFDStructMainWindow::initPropertyWidget()
{
3 weeks ago
//CUI* cuiWidget = new CUI(new CUIConfig({
// "type", "Widget",
// "name", "main_widget"
//}, {
// new CUIConfig({
// {"type", "GroupBox"},
// {"name", "模型"},
// }, {}),
// new CUIConfig({}, {}),
// new CUIConfig({}, {})
//}));
QWidget* cuiwidget = new QWidget();
QVBoxLayout* cuilayout = new QVBoxLayout();
cuiwidget->setLayout(cuilayout);
QGroupBox* gb1 = new QGroupBox("Model");
cuilayout->addWidget(gb1);
gb1->setLayout(new QVBoxLayout());
gb1->layout()->addWidget(new QRadioButton("Inviscid"));
gb1->layout()->addWidget(new QRadioButton("Laminar"));
gb1->layout()->addWidget(new QRadioButton("RANS"));
gb1->layout()->addWidget(new QRadioButton("DES"));
gb1->layout()->addWidget(new QRadioButton("CLES"));
QGroupBox* gb2 = new QGroupBox("RANS");
cuilayout->addWidget(gb2);
gb2->setLayout(new QVBoxLayout());
gb2->layout()->addWidget(new QRadioButton("S-A"));
gb2->layout()->addWidget(new QRadioButton("Menters's κ-ω"));
gb2->layout()->addWidget(new QRadioButton("κ-ε"));
QGroupBox* gb3 = new QGroupBox("S-A type");
cuilayout->addWidget(gb3);
gb3->setLayout(new QVBoxLayout());
gb3->layout()->addWidget(new QRadioButton("standard"));
gb3->layout()->addWidget(new QRadioButton("Edwards"));
QWidget* spacer = new QWidget;
spacer->setFixedHeight(400);
// 将弹簧添加到布局中
cuilayout->addWidget(spacer);
// CUI* cui = new CUI(new CUIConfig({
// {"type", "Widget"}
// }, {
// new CUIConfig({
// {"type", "GroupBox"},
// {"name", "GroupBox_name"}
// }, {})
// }));
3 weeks ago
// CUIConfig* cuiconfig = new CUIConfig({
// {"type","type"},
// {"name","name"}
// });
// cuiconfig->printConfig();
// cuilayout->addWidget(cui->getUI());
QWidget* test = new CUI(nullptr,new CUIConfig({
{"type","LineEdit"},
{"name","test"}
}));
3 weeks ago
m_PropertyWidget->setWidget(cuiwidget);
m_PropertyWidget->setWidget(test);
}
void CFDStructMainWindow::initMainWindowMenu()
{
initApplicationButton();
addSARibbonCategoryGeometry();
addSARibbonCategoryMesh();
addSARibbonCategoryCalculation();
addSARibbonCategoryPostProcessing();
addSARibbonCategoryTool();
addSARibbonCategoryCivilAircraftTemplateLibrary();
_ribbonBar->setCurrentIndex(0);
}
void CFDStructMainWindow::addSARibbonCategoryGeometry()
{
QString type = tr("Geometry");
SARibbonCategory* gategory = _ribbonBar->addCategoryPage(type);
_ribbonBar->raiseCategory(gategory);
}
void CFDStructMainWindow::addSARibbonCategoryMesh()
{
QString type = tr("Mesh");
SARibbonCategory* gategory = _ribbonBar->addCategoryPage(type);
_ribbonBar->raiseCategory(gategory);
}
void CFDStructMainWindow::addSARibbonCategoryCalculation()
{
3 weeks ago
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>µı<C2B5>ǩ
QString type = tr("Calculation");
SARibbonCategory* gategory = _ribbonBar->addCategoryPage(type);
_ribbonBar->raiseCategory(gategory);
QAction* action = nullptr;
3 weeks ago
//pannel <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
SARibbonPannel* pannel = gategory->addPannel(tr("Simulation Run"));
//action = getAction("actionImportGeometry");
3 weeks ago
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ͼ<EFBFBD><CDBC> "<22><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>"
action = createAction(tr("Start Calculation"), "actionStartCalculation", ":/icons/createbox.png", tr("Start Calculation"));
3 weeks ago
//<2F><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>С
pannelAddAction(pannel, action, SARibbonPannelItem::Large);
3 weeks ago
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>"
pannel = gategory->addPannel(tr("Import and Export"));
3 weeks ago
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
action = createAction(tr("Mesh Import"), "actionMeshImport", ":/icons/createbox.png", tr("Mesh Import"));
3 weeks ago
//"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>"
pannelAddAction(pannel, action, SARibbonPannelItem::Large);
3 weeks ago
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>"<22><><EFBFBD><EFBFBD>"
action = createAction(tr("Import"), "actionImport", ":/icons/createsphere.png", tr("Import"));
3 weeks ago
//"<22><><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>"
pannelAddAction(pannel, action, SARibbonPannelItem::Large);
3 weeks ago
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
pannel = gategory->addPannel(tr("Solver Settings"));
3 weeks ago
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC> ʱ<><CAB1>ģʽ
action = createAction(tr("Time Mode"), "actionTimeMode", ":/icons/BoolFause.png", tr("Time Mode"));
pannelAddAction(pannel, action, SARibbonPannelItem::Large);
3 weeks ago
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC> <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
action = createAction(tr("Basic Model"), "actionBasicModel", ":/icons/BoolCut.png", tr("Basic Model"));
pannelAddAction(pannel, action, SARibbonPannelItem::Large);
3 weeks ago
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC> ճ<><D5B3>ģ<EFBFBD><C4A3>
action = createAction(tr("Viscosity Model"), "actionViscosityModel", ":/icons/BoolCommon.png", tr("Viscosity Model"));
pannelAddAction(pannel, action, SARibbonPannelItem::Large);
3 weeks ago
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC> <20><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
action = createAction(tr("Numerical Method"), "actionNumericalMethod", ":/icons/BoolCommon.png", tr("Numerical Method"));
pannelAddAction(pannel, action, SARibbonPannelItem::Large);
3 weeks ago
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC> <20>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>
action = createAction(tr("Motion Properties"), "actionMotionProperties", ":/icons/BoolCommon.png", tr("Motion Properties"));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>"
pannel = gategory->addPannel(tr("Boundary Conditions and Initial Conditions"));
3 weeks ago
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC> <20>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD>
action = createAction(tr("Boundary Conditions"), "actionBoundaryConditions", ":/icons/BoolCommon.png", tr("Boundary Conditions"));
pannelAddAction(pannel, action, SARibbonPannelItem::Large);
3 weeks ago
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC> <20>ο<EFBFBD><CEBF><EFBFBD>
action = createAction(tr("Reference Quantities"), "actionReferenceQuantities", ":/icons/BoolCommon.png", tr("Reference Quantities"));
pannelAddAction(pannel, action, SARibbonPannelItem::Large);
3 weeks ago
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC> <20><>ʼ<EFBFBD><CABC>
action = createAction(tr("Initialization"), "actionInitialization", ":/icons/BoolCommon.png", tr("Initialization"));
pannelAddAction(pannel, action, SARibbonPannelItem::Large);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
pannel = gategory->addPannel(tr("Computational Control"));
3 weeks ago
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
action = createAction(tr("Computational Control"), "actionComputational Control", ":/icons/Computational Control.png", tr("Computational Control"));
pannelAddAction(pannel, action, SARibbonPannelItem::Large);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22><><EFBFBD><EFBFBD><EFBFBD>"
pannel = gategory->addPannel(tr("Monitors"));
3 weeks ago
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC> <20>в<EFBFBD>
action = createAction(tr("Residuals"), "actionResiduals", ":/icons/Residuals.png", tr("Residuals"));
pannelAddAction(pannel, action, SARibbonPannelItem::Large);
3 weeks ago
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
action = createAction(tr("Aerodynamic Forces"), "actionAerodynamicForces", ":/icons/AerodynamicForces.png", tr("Aerodynamic Forces"));
pannelAddAction(pannel, action, SARibbonPannelItem::Large);
3 weeks ago
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC> <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
action = createAction(tr("Summary"), "actionSummary", ":/icons/Summary.png", tr("Summary"));
pannelAddAction(pannel, action, SARibbonPannelItem::Large);
}
void CFDStructMainWindow::addSARibbonCategoryPostProcessing() {
QString type = tr("Post Processing");
SARibbonCategory* gategory = _ribbonBar->addCategoryPage(type);
_ribbonBar->raiseCategory(gategory);
}
void CFDStructMainWindow::addSARibbonCategoryTool() {
QString type = tr("Tool");
SARibbonCategory* gategory = _ribbonBar->addCategoryPage(type);
_ribbonBar->raiseCategory(gategory);
}
void CFDStructMainWindow::addSARibbonCategoryCivilAircraftTemplateLibrary() {
QString type = tr("CivilAircraft Template sLibrary");
SARibbonCategory* gategory = _ribbonBar->addCategoryPage(type);
_ribbonBar->raiseCategory(gategory);
}