Update
This commit is contained in:
@@ -47,6 +47,8 @@ ASSETS_PATH = config.ASSETS_PATH
|
||||
DNA_FILE_PATH = config.DNA_FILE_PATH
|
||||
DNA_IMG_PATH = config.DNA_IMG_PATH
|
||||
TOOL_COMMAND_ICON = config.TOOL_COMMAND_ICON
|
||||
TOOL_WIDTH = config.TOOL_WIDTH
|
||||
TOOL_HEIGHT = config.TOOL_HEIGHT
|
||||
#========================================= LOCATION =======================================
|
||||
from scripts.ui import localization
|
||||
LANG = localization.LANG
|
||||
@@ -64,15 +66,37 @@ class DefinitionUI(ui_utils.BaseUI):
|
||||
"""
|
||||
super(DefinitionUI, self).__init__()
|
||||
|
||||
# 设置单例实例
|
||||
DefinitionUI._instance = self
|
||||
|
||||
# 创建主控件
|
||||
self.main_widget = QtWidgets.QWidget()
|
||||
self.main_widget.setObjectName("definitionMainWidget")
|
||||
|
||||
# 初始化字典
|
||||
self.controls = {}
|
||||
self.layouts = {}
|
||||
self.splitters = {}
|
||||
self.buttons = {}
|
||||
|
||||
# 初始化UI
|
||||
self.create_widgets()
|
||||
self.create_layouts()
|
||||
self.create_connections()
|
||||
|
||||
|
||||
# 添加左右面板到分割器
|
||||
self.splitters["main_splitter"].addWidget(self.controls["left_panel"])
|
||||
self.splitters["main_splitter"].addWidget(self.controls["right_panel"])
|
||||
|
||||
# 设置分割器所有子元素的最小尺寸为0,确保可以自由调整
|
||||
ui_utils.set_splitter_children_minimum_size(self, recursive=True)
|
||||
|
||||
# 设置所有控件的最小尺寸为0,确保分割器可以自由移动
|
||||
ui_utils.set_all_controls_minimum_size(self)
|
||||
|
||||
# 使用ui_utils中的函数强制设置均等大小
|
||||
ui_utils.force_equal_splitter_sizes(self)
|
||||
|
||||
#========================================= WIDGET =======================================
|
||||
def create_widgets(self):
|
||||
"""
|
||||
@@ -89,6 +113,9 @@ class DefinitionUI(ui_utils.BaseUI):
|
||||
# 主分割器
|
||||
self.splitters["main_splitter"] = QtWidgets.QSplitter(QtCore.Qt.Horizontal)
|
||||
self.splitters["main_splitter"].setObjectName("definitionMainSplitter")
|
||||
self.splitters["main_splitter"].setHandleWidth(6) # 设置分割器手柄宽度
|
||||
self.splitters["main_splitter"].setChildrenCollapsible(False) # 禁止子部件折叠
|
||||
self.splitters["main_splitter"].setOpaqueResize(True) # 实时显示调整效果
|
||||
|
||||
# 左侧面板
|
||||
self.controls["left_panel"] = QtWidgets.QWidget()
|
||||
@@ -221,8 +248,14 @@ class DefinitionUI(ui_utils.BaseUI):
|
||||
# 添加标题标签
|
||||
self.layouts["main_layout"].addWidget(self.controls["title_label"])
|
||||
|
||||
# 添加主分割器
|
||||
self.layouts["main_layout"].addWidget(self.splitters["main_splitter"])
|
||||
# 主分割器布局
|
||||
self.layouts["main_splitter_layout"] = QtWidgets.QHBoxLayout()
|
||||
self.layouts["main_splitter_layout"].setContentsMargins(0, 0, 0, 0)
|
||||
self.layouts["main_splitter_layout"].setSpacing(0)
|
||||
self.layouts["main_splitter_layout"].addWidget(self.splitters["main_splitter"])
|
||||
|
||||
# 添加主分割器布局到主布局
|
||||
self.layouts["main_layout"].addLayout(self.layouts["main_splitter_layout"])
|
||||
|
||||
# 左侧面板布局
|
||||
self.layouts["left_layout"] = QtWidgets.QVBoxLayout(self.controls["left_panel"])
|
||||
@@ -338,23 +371,6 @@ class DefinitionUI(ui_utils.BaseUI):
|
||||
|
||||
# 添加底部面板到主布局
|
||||
self.layouts["main_layout"].addLayout(self.layouts["bottom_panel"])
|
||||
|
||||
# 设置分割器初始大小
|
||||
# 主分割器左右各半
|
||||
self.splitters["main_splitter"].setSizes([500, 500])
|
||||
# 左侧分割器上下各半
|
||||
self.splitters["left_splitter"].setSizes([250, 250])
|
||||
# 右侧分割器均匀分配
|
||||
right_item_height = 1000 // self.splitters["right_splitter"].count()
|
||||
self.splitters["right_splitter"].setSizes([right_item_height] * self.splitters["right_splitter"].count())
|
||||
|
||||
# 设置分割器的伸缩因子,确保左右栏能够自动调整宽度
|
||||
for i in range(self.splitters["main_splitter"].count()):
|
||||
self.splitters["main_splitter"].setStretchFactor(i, 1)
|
||||
|
||||
# 将左右面板添加到主分割器
|
||||
self.splitters["main_splitter"].addWidget(self.controls["left_panel"])
|
||||
self.splitters["main_splitter"].addWidget(self.controls["right_panel"])
|
||||
|
||||
#======================================= CONNECTION =====================================
|
||||
def create_connections(self):
|
||||
|
Reference in New Issue
Block a user