1
0
forked from Rowland/EG

1.0 update

This commit is contained in:
陈横 2025-08-15 09:43:00 +08:00
parent 05dec0d62d
commit cf2bfb0fcc
3 changed files with 15 additions and 17 deletions

File diff suppressed because one or more lines are too long

View File

@ -119,26 +119,26 @@ class InterfaceManager:
print("\n=== 更新场景树 ===")
self.treeWidget.clear()
# 创建场景根节点
sceneRoot = QTreeWidgetItem(self.treeWidget, ['场景'])
# 添加相机节点
cameraItem = QTreeWidgetItem(sceneRoot, ['相机'])
cameraItem.setData(0, Qt.UserRole, self.world.cam)
print("添加相机节点")
# 添加模型节点组
modelsItem = QTreeWidgetItem(sceneRoot, ['模型'])
print(f"模型列表中的模型数量: {len(self.world.models)}")
# 添加GUI元素节点组
guiItem = QTreeWidgetItem(sceneRoot, ['GUI元素'])
print(f"GUI元素数量: {len(self.world.gui_elements)}")
lightItem = QTreeWidgetItem(sceneRoot,['灯光'])
# 递归添加节点及其子节点
def addNodeToTree(node, parentItem):
print(f"\n处理节点: {node.getName()}")
@ -146,29 +146,29 @@ class InterfaceManager:
nodeItem = QTreeWidgetItem(parentItem, [node.getName()])
nodeItem.setData(0, Qt.UserRole, node)
print(f"添加节点: {node.getName()}")
# 递归处理所有子节点
for child in node.getChildren():
# 检查是否是有效的模型节点
if (isinstance(child.node(), GeomNode) or
child.hasTag("file") or
if (isinstance(child.node(), GeomNode) or
child.hasTag("file") or
child.getName() == "RootNode" or
isinstance(child.node(), ModelRoot)):
print(f"处理子节点: {child.getName()}")
addNodeToTree(child, nodeItem)
else:
print(f"跳过节点: {child.getName()}")
# 添加所有模型及其子节点
for model in self.world.models:
print(f"\n处理根模型: {model.getName()}")
addNodeToTree(model, modelsItem)
# 添加所有GUI元素
for gui_element in self.world.gui_elements:
gui_type = gui_element.getTag("gui_type") if hasattr(gui_element, 'getTag') else "unknown"
gui_text = gui_element.getTag("gui_text") if hasattr(gui_element, 'getTag') else "GUI元素"
display_name = f"{gui_type}: {gui_text}"
guiElementItem = QTreeWidgetItem(guiItem, [display_name])
guiElementItem.setData(0, Qt.UserRole, gui_element)
@ -178,13 +178,13 @@ class InterfaceManager:
addNodeToTree(light_element,lightItem)
for light_element in self.world.Pointlight:
addNodeToTree(light_element,lightItem)
# 添加地板节点
if hasattr(self.world, 'ground'):
groundItem = QTreeWidgetItem(sceneRoot, ['地板'])
groundItem.setData(0, Qt.UserRole, self.world.ground)
print("添加地板节点")
# 展开所有节点
self.treeWidget.expandAll()
print("=== 场景树更新完成 ===\n")

View File

@ -314,7 +314,7 @@ class CustomTreeWidget(QTreeWidget):
self.setupDragDrop() # 设置拖拽功能
self.setDragDropMode(QTreeWidget.InternalMove)
# self.setDragDropMode(QTreeWidget.InternalMove)
def setupUI(self):
@ -329,8 +329,6 @@ class CustomTreeWidget(QTreeWidget):
# 使用自定义拖拽模式
self.setDragDropMode(QAbstractItemView.DragDropMode.InternalMove) # 或者使用 DragDrop
self.setDefaultDropAction(Qt.DropAction.MoveAction)
self.setDragEnabled(True)
self.setAcceptDrops(True)
def dropEvent(self, event):
"""处理拖放事件"""