#include "OCCTopoShapeTreeViewer.h" #include #include "SharedModuleLib/BaseUiTool.h" #include #include OCCTopoShapeTreeViewer::OCCTopoShapeTreeViewer(QWidget* parent) : QTreeWidget(parent) { // 构造函数 } void OCCTopoShapeTreeViewer::setTopoShape(const TopoDS_Shape& shape) { this->displayTopoShape(shape); } void OCCTopoShapeTreeViewer::displayTopoShape(const TopoDS_Shape& shape) { // 清空QTreeWidget clear(); // 调用递归函数来添加Topo_Shape的层次结构 addTopoShapeToTreeWidget(shape, nullptr); // 展开所有项目 expandAll(); } void OCCTopoShapeTreeViewer::addTopoShapeToTreeWidget(const TopoDS_Shape& shape, QTreeWidgetItem* parentItem) { // 获取当前Topo_Shape的类型 TopAbs_ShapeEnum shapeType = shape.ShapeType(); // 创建一个新的QTreeWidgetItem来表示当前Topo_Shape QTreeWidgetItem* currentItem = new QTreeWidgetItem(parentItem); currentItem->setText(0, TopAbs_ShapeEnum2QString(shapeType)); }