#include "CFDTreeWidget.h" #include #include #include #include namespace GUI{ CFDTreeWidget::CFDTreeWidget(QWidget* parent, PropertyWidget* m_PropertyWidget): 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){ this->clear(); if(s == "SolutionAnalysis") addTreeSolutionAnalysis(); else if(s == "Postprocessing") addTreePostprocessing(); else if(s == "Preprocessing") addTreePreprocessing(); setItemsExpandable(true); expandAll(); } void CFDTreeWidget::addTreePreprocessing(){ QTreeWidgetItem* GeometryAndMeshingItem = new QTreeWidgetItem(); 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() { QTreeWidgetItem* GeometryAndMeshingItem = new QTreeWidgetItem(); 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); GeometryAndMeshingItem->addChild(mesh); QTreeWidgetItem* ComputationalSetupItem = new QTreeWidgetItem(); 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); ComputationalSetupItem->addChild(TimeModeItem); QTreeWidgetItem* ComputationalDomainItem = new QTreeWidgetItem(); 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); ComputationalDomainItem->addChild(SolverItem); QTreeWidgetItem* BasicModelItem = new QTreeWidgetItem(); 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); SolverItem->addChild(ViscosityModelItem); QTreeWidgetItem* NumericalMethodsItem = new QTreeWidgetItem(); 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); ComputationalDomainItem->addChild(MotionPropertiesItem); QTreeWidgetItem* motion1Item = new QTreeWidgetItem(); 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); ComputationalDomainItem->addChild(BoundaryConditionsItem); QTreeWidgetItem* pressureinletItem = new QTreeWidgetItem(); 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); ComputationalDomainItem->addChild(InitializationItem); QTreeWidgetItem* ComputationalControlItem = new QTreeWidgetItem(); 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); ComputationalControlItem->addChild(ReferenceQuantityItem); QTreeWidgetItem* MonitorsItem = new QTreeWidgetItem(); 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); MonitorsItem->addChild(ResidualItem); QTreeWidgetItem* AerodynamicForceItem = new QTreeWidgetItem(); 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); MonitorsItem->addChild(TurbomachineryPerformanceItem); } 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); this->addTopLevelItem(PostProcessingItem); QTreeWidgetItem* MeshItem = new QTreeWidgetItem(); 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); MeshItem->addChild(Mesh1Item); QTreeWidgetItem* Interface1Item = new QTreeWidgetItem(); 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); PostProcessingItem->addChild(CuttingPlaneItem); QTreeWidgetItem* IsosurfaceItem = new QTreeWidgetItem(); 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); PostProcessingItem->addChild(StreamlineItem); QTreeWidgetItem* DataStatisticsItem = new QTreeWidgetItem(); 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); DataStatisticsItem->addChild(ForceAndMomentItem); } void CFDTreeWidget::onItemClicked(QTreeWidgetItem *item, int column) { qDebug()<text(0); } }