diff --git a/scripts/MetaFusion.py b/scripts/MetaFusion.py index f910b11..ad5d6a2 100644 --- a/scripts/MetaFusion.py +++ b/scripts/MetaFusion.py @@ -19,8 +19,8 @@ class MetaFusion(QtWidgets.QMainWindow): # === 设置窗口属性 === self.setWindowTitle(f"{config.TOOL_NAME} {config.TOOL_VERSION}") # 设置初始大小和最小大小 - self.resize(550, 700) # 初始大小 - self.setMinimumSize(550, 700) # 最小大小限制 + self.resize(550, 750) # 初始大小 + self.setMinimumSize(550, 750) # 最小大小限制 # === 创建中心部件 === self.central_widget = QtWidgets.QWidget() diff --git a/scripts/ui/meshes.py b/scripts/ui/meshes.py index 597c322..169a5c0 100644 --- a/scripts/ui/meshes.py +++ b/scripts/ui/meshes.py @@ -193,50 +193,81 @@ class MeshesTab(QtWidgets.QWidget): buttons = QtWidgets.QWidget() button_layout = QtWidgets.QHBoxLayout(buttons) button_layout.setContentsMargins(0, 8, 0, 8) - button_layout.setSpacing(8) # 统一按钮间距为8 # 创建功能按钮 load_btn = self._create_tool_button("自动加载模型", "load_meshes.png", "fileOpen.png") standardize_btn = self._create_tool_button("标准化命名", "standardized_naming.png", "setEdNormalize.png") - group_btn = self._create_tool_button("自动分组", "auto_group.png", "menuIconEdit.png") + group_btn = self._create_tool_button("自动分组", "automatic_groupingg.png", "menuIconEdit.png") delete_btn = self._create_tool_button("清理", "delete.png", "delete.png") - # 设置按钮固定宽度 - button_width = (widget.width() - 32) // 4 # 32是左右边距和3个按钮间距(8*3)的总和 + # 创建按钮容器 + button_container = QtWidgets.QWidget() + container_layout = QtWidgets.QHBoxLayout(button_container) + container_layout.setContentsMargins(0, 0, 0, 0) + container_layout.setSpacing(4) # 减小按钮间距为4 + + # 添加按钮到容器,使用弹性空间使按钮居中 + container_layout.addStretch(1) for btn in [load_btn, standardize_btn, group_btn, delete_btn]: - btn.setFixedWidth(button_width) - button_layout.addWidget(btn) + container_layout.addWidget(btn) + if btn != delete_btn: # 最后一个按钮后不添加间距 + container_layout.addSpacing(4) # 添加固定间距 + container_layout.addStretch(1) + + button_layout.addWidget(button_container) # === 添加到主布局 === layout.addWidget(scroll) layout.addWidget(buttons) + # 添加窗口大小变化事件处理 + def on_resize(event): + width = event.size().width() + available_width = width - 28 # 28是左右边距(16)和按钮间距(4*3)的总和 + button_width = (available_width) // 4 + for btn in [load_btn, standardize_btn, group_btn, delete_btn]: + btn.setFixedWidth(button_width) + super(type(widget), widget).resizeEvent(event) + + widget.resizeEvent = on_resize + return widget def _create_mesh_item(self, mesh_name): """创建网格项""" item = QtWidgets.QWidget() layout = QtWidgets.QHBoxLayout(item) - layout.setContentsMargins(4, 2, 4, 2) # 减小上下边距 - layout.setSpacing(8) + layout.setContentsMargins(4, 1, 4, 1) # 减小上下边距 + layout.setSpacing(4) # 减小间距 + + # 左侧容器(标签和输入框) + left_container = QtWidgets.QWidget() + left_layout = QtWidgets.QHBoxLayout(left_container) + left_layout.setContentsMargins(0, 0, 0, 0) + left_layout.setSpacing(4) # 减小标签和输入框的间距 # 网格名称标签 name_label = QtWidgets.QLabel(mesh_name) - name_label.setMinimumWidth(100) + name_label.setFixedWidth(70) # 减小标签宽度 + name_label.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) # 左对齐 # 网格路径输入框 - 可编辑 path_edit = QtWidgets.QLineEdit() path_edit.setPlaceholderText("输入或选择模型路径...") + path_edit.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) - # 添加按钮 + left_layout.addWidget(name_label) + left_layout.addWidget(path_edit) + + # 添加按钮(右对齐) add_btn = QtWidgets.QPushButton() add_btn.setIcon(QtGui.QIcon(":fileOpen.png")) add_btn.setToolTip("浏览...") - add_btn.setFixedSize(24, 24) # 减小按钮大小 + add_btn.setFixedSize(22, 22) - layout.addWidget(name_label) - layout.addWidget(path_edit) - layout.addWidget(add_btn) + # 添加到主布局 + layout.addWidget(left_container, stretch=1) # 左侧容器占据所有可用空间 + layout.addWidget(add_btn) # 按钮右对齐 # 设置样式 item.setStyleSheet(""" @@ -251,8 +282,9 @@ class MeshesTab(QtWidgets.QWidget): background: #3D3D3D; border: 1px solid #555555; border-radius: 2px; - padding: 4px 8px; + padding: 2px 4px; color: #CCCCCC; + min-height: 22px; } QLineEdit:hover { border: 1px solid #666666; @@ -265,6 +297,7 @@ class MeshesTab(QtWidgets.QWidget): background: #3D3D3D; border: 1px solid #555555; border-radius: 2px; + padding: 2px; } QPushButton:hover { background: #454545; @@ -274,6 +307,9 @@ class MeshesTab(QtWidgets.QWidget): } """) + # 设置大小策略 + item.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) + return item def _create_tool_button(self, text, icon_name, fallback_icon=None):