forked from Rowland/EG
1.修改属性面板布局
This commit is contained in:
parent
4f75cfb1a9
commit
05dec0d62d
2
.idea/AugmentWebviewStateStore.xml
generated
2
.idea/AugmentWebviewStateStore.xml
generated
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -12,7 +12,7 @@ from PyQt5.QtWidgets import (QApplication, QMainWindow, QMenuBar, QMenu, QAction
|
|||||||
QDockWidget, QTreeWidget, QListWidget, QWidget, QVBoxLayout, QTreeWidgetItem,
|
QDockWidget, QTreeWidget, QListWidget, QWidget, QVBoxLayout, QTreeWidgetItem,
|
||||||
QLabel, QLineEdit, QFormLayout, QDoubleSpinBox, QScrollArea,
|
QLabel, QLineEdit, QFormLayout, QDoubleSpinBox, QScrollArea,
|
||||||
QFileSystemModel, QButtonGroup, QToolButton, QPushButton, QHBoxLayout,
|
QFileSystemModel, QButtonGroup, QToolButton, QPushButton, QHBoxLayout,
|
||||||
QComboBox, QGroupBox, QInputDialog, QFileDialog, QMessageBox, QDesktopWidget)
|
QComboBox, QGroupBox, QInputDialog, QFileDialog, QMessageBox, QDesktopWidget, QGridLayout)
|
||||||
from PyQt5.QtCore import Qt, QDir, QTimer
|
from PyQt5.QtCore import Qt, QDir, QTimer
|
||||||
from ui.widgets import CustomPanda3DWidget, CustomFileView, CustomTreeWidget
|
from ui.widgets import CustomPanda3DWidget, CustomFileView, CustomTreeWidget
|
||||||
|
|
||||||
@ -24,8 +24,8 @@ class MainWindow(QMainWindow):
|
|||||||
self.world = world
|
self.world = world
|
||||||
self.setupCenterWidget() # 创建中间部分Panda3D
|
self.setupCenterWidget() # 创建中间部分Panda3D
|
||||||
self.setupMenus() # 创建菜单栏
|
self.setupMenus() # 创建菜单栏
|
||||||
self.setupDockWindows()
|
self.setupDockWindows() # 可停靠窗口
|
||||||
self.setupToolbar()
|
self.setupToolbar() # 工具栏
|
||||||
self.connectEvents()
|
self.connectEvents()
|
||||||
|
|
||||||
# 移动窗口到屏幕中央
|
# 移动窗口到屏幕中央
|
||||||
@ -126,11 +126,11 @@ class MainWindow(QMainWindow):
|
|||||||
self.leftDock = QDockWidget("层级", self)
|
self.leftDock = QDockWidget("层级", self)
|
||||||
self.leftDock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)
|
self.leftDock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)
|
||||||
self.treeWidget = CustomTreeWidget(self.world)
|
self.treeWidget = CustomTreeWidget(self.world)
|
||||||
self.treeWidget.setHeaderLabel("场景")
|
|
||||||
self.world.setTreeWidget(self.treeWidget) # 设置树形控件引用
|
self.world.setTreeWidget(self.treeWidget) # 设置树形控件引用
|
||||||
self.leftDock.setWidget(self.treeWidget)
|
self.leftDock.setWidget(self.treeWidget)
|
||||||
self.leftDock.setMinimumWidth(300)
|
# self.leftDock.setMinimumWidth(300)
|
||||||
self.addDockWidget(Qt.LeftDockWidgetArea, self.leftDock)
|
self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.leftDock)
|
||||||
|
|
||||||
|
|
||||||
# 创建右侧停靠窗口(属性窗口)
|
# 创建右侧停靠窗口(属性窗口)
|
||||||
self.rightDock = QDockWidget("属性", self)
|
self.rightDock = QDockWidget("属性", self)
|
||||||
@ -139,12 +139,14 @@ class MainWindow(QMainWindow):
|
|||||||
# 创建属性面板的主容器和布局
|
# 创建属性面板的主容器和布局
|
||||||
self.propertyContainer = QWidget()
|
self.propertyContainer = QWidget()
|
||||||
self.propertyContainer.setObjectName("PropertyContainer")
|
self.propertyContainer.setObjectName("PropertyContainer")
|
||||||
self.propertyLayout = QFormLayout(self.propertyContainer)
|
self.propertyLayout = QVBoxLayout(self.propertyContainer)
|
||||||
|
# self.propertyLayout = QFormLayout(self.propertyContainer)
|
||||||
|
|
||||||
# 添加初始提示信息
|
# 添加初始提示信息
|
||||||
tipLabel = QLabel("")
|
tipLabel = QLabel("")
|
||||||
tipLabel.setStyleSheet("color: gray;") # 使用灰色字体
|
tipLabel.setStyleSheet("color: gray;") # 使用灰色字体
|
||||||
self.propertyLayout.addRow(tipLabel)
|
# self.propertyLayout.addRow(tipLabel)
|
||||||
|
self.propertyLayout.addWidget(tipLabel)
|
||||||
|
|
||||||
# 创建滚动区域并设置属性
|
# 创建滚动区域并设置属性
|
||||||
self.scrollArea = QScrollArea()
|
self.scrollArea = QScrollArea()
|
||||||
@ -159,6 +161,7 @@ class MainWindow(QMainWindow):
|
|||||||
# 设置属性面板到世界对象
|
# 设置属性面板到世界对象
|
||||||
self.world.setPropertyLayout(self.propertyLayout)
|
self.world.setPropertyLayout(self.propertyLayout)
|
||||||
|
|
||||||
|
|
||||||
# 创建脚本管理停靠窗口
|
# 创建脚本管理停靠窗口
|
||||||
self.scriptDock = QDockWidget("脚本管理", self)
|
self.scriptDock = QDockWidget("脚本管理", self)
|
||||||
self.scriptDock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)
|
self.scriptDock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)
|
||||||
@ -168,6 +171,7 @@ class MainWindow(QMainWindow):
|
|||||||
# 将右侧停靠窗口设为标签形式
|
# 将右侧停靠窗口设为标签形式
|
||||||
self.tabifyDockWidget(self.rightDock, self.scriptDock)
|
self.tabifyDockWidget(self.rightDock, self.scriptDock)
|
||||||
|
|
||||||
|
|
||||||
# 创建底部停靠窗口(资源窗口)
|
# 创建底部停靠窗口(资源窗口)
|
||||||
self.bottomDock = QDockWidget("资源", self)
|
self.bottomDock = QDockWidget("资源", self)
|
||||||
self.bottomDock.setAllowedAreas(Qt.BottomDockWidgetArea)
|
self.bottomDock.setAllowedAreas(Qt.BottomDockWidgetArea)
|
||||||
|
|||||||
1569
ui/property_panel.py
1569
ui/property_panel.py
File diff suppressed because it is too large
Load Diff
@ -11,9 +11,9 @@
|
|||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
from PyQt5.QtWidgets import (QDialog, QVBoxLayout, QGroupBox, QHBoxLayout,
|
from PyQt5.QtWidgets import (QDialog, QVBoxLayout, QGroupBox, QHBoxLayout,
|
||||||
QLineEdit, QPushButton, QLabel, QDialogButtonBox,
|
QLineEdit, QPushButton, QLabel, QDialogButtonBox,
|
||||||
QTreeView, QTreeWidget, QTreeWidgetItem, QWidget,
|
QTreeView, QTreeWidget, QTreeWidgetItem, QWidget,
|
||||||
QFileDialog, QMessageBox)
|
QFileDialog, QMessageBox, QAbstractItemView)
|
||||||
from PyQt5.QtCore import Qt, QUrl
|
from PyQt5.QtCore import Qt, QUrl
|
||||||
from PyQt5.QtGui import QDrag, QPainter, QPixmap
|
from PyQt5.QtGui import QDrag, QPainter, QPixmap
|
||||||
from PyQt5.sip import wrapinstance
|
from PyQt5.sip import wrapinstance
|
||||||
@ -310,9 +310,27 @@ class CustomTreeWidget(QTreeWidget):
|
|||||||
parent = wrapinstance(0, QWidget)
|
parent = wrapinstance(0, QWidget)
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self.world = world
|
self.world = world
|
||||||
|
self.setupUI() # 初始化界面
|
||||||
|
|
||||||
|
self.setupDragDrop() # 设置拖拽功能
|
||||||
|
|
||||||
|
self.setDragDropMode(QTreeWidget.InternalMove)
|
||||||
|
|
||||||
|
|
||||||
|
def setupUI(self):
|
||||||
|
"""初始化UI设置"""
|
||||||
|
self.setHeaderHidden(True)
|
||||||
|
# 启用多选和拖拽
|
||||||
|
self.setSelectionMode(QAbstractItemView.SelectionMode.ExtendedSelection)
|
||||||
|
self.setDropIndicatorShown(True)
|
||||||
|
|
||||||
|
def setupDragDrop(self):
|
||||||
|
"""设置拖拽功能"""
|
||||||
|
# 使用自定义拖拽模式
|
||||||
|
self.setDragDropMode(QAbstractItemView.DragDropMode.InternalMove) # 或者使用 DragDrop
|
||||||
|
self.setDefaultDropAction(Qt.DropAction.MoveAction)
|
||||||
self.setDragEnabled(True)
|
self.setDragEnabled(True)
|
||||||
self.setAcceptDrops(True)
|
self.setAcceptDrops(True)
|
||||||
self.setDragDropMode(QTreeWidget.InternalMove)
|
|
||||||
|
|
||||||
def dropEvent(self, event):
|
def dropEvent(self, event):
|
||||||
"""处理拖放事件"""
|
"""处理拖放事件"""
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user