Update
This commit is contained in:
parent
191f44d78e
commit
9ca94c974d
@ -19,8 +19,8 @@ class MetaFusion(QtWidgets.QMainWindow):
|
|||||||
# === 设置窗口属性 ===
|
# === 设置窗口属性 ===
|
||||||
self.setWindowTitle(f"{config.TOOL_NAME} {config.TOOL_VERSION}")
|
self.setWindowTitle(f"{config.TOOL_NAME} {config.TOOL_VERSION}")
|
||||||
# 设置初始大小和最小大小
|
# 设置初始大小和最小大小
|
||||||
self.resize(550, 700) # 初始大小
|
self.resize(550, 750) # 初始大小
|
||||||
self.setMinimumSize(550, 700) # 最小大小限制
|
self.setMinimumSize(550, 750) # 最小大小限制
|
||||||
|
|
||||||
# === 创建中心部件 ===
|
# === 创建中心部件 ===
|
||||||
self.central_widget = QtWidgets.QWidget()
|
self.central_widget = QtWidgets.QWidget()
|
||||||
|
@ -193,50 +193,81 @@ class MeshesTab(QtWidgets.QWidget):
|
|||||||
buttons = QtWidgets.QWidget()
|
buttons = QtWidgets.QWidget()
|
||||||
button_layout = QtWidgets.QHBoxLayout(buttons)
|
button_layout = QtWidgets.QHBoxLayout(buttons)
|
||||||
button_layout.setContentsMargins(0, 8, 0, 8)
|
button_layout.setContentsMargins(0, 8, 0, 8)
|
||||||
button_layout.setSpacing(8) # 统一按钮间距为8
|
|
||||||
|
|
||||||
# 创建功能按钮
|
# 创建功能按钮
|
||||||
load_btn = self._create_tool_button("自动加载模型", "load_meshes.png", "fileOpen.png")
|
load_btn = self._create_tool_button("自动加载模型", "load_meshes.png", "fileOpen.png")
|
||||||
standardize_btn = self._create_tool_button("标准化命名", "standardized_naming.png", "setEdNormalize.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")
|
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]:
|
for btn in [load_btn, standardize_btn, group_btn, delete_btn]:
|
||||||
btn.setFixedWidth(button_width)
|
container_layout.addWidget(btn)
|
||||||
button_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(scroll)
|
||||||
layout.addWidget(buttons)
|
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
|
return widget
|
||||||
|
|
||||||
def _create_mesh_item(self, mesh_name):
|
def _create_mesh_item(self, mesh_name):
|
||||||
"""创建网格项"""
|
"""创建网格项"""
|
||||||
item = QtWidgets.QWidget()
|
item = QtWidgets.QWidget()
|
||||||
layout = QtWidgets.QHBoxLayout(item)
|
layout = QtWidgets.QHBoxLayout(item)
|
||||||
layout.setContentsMargins(4, 2, 4, 2) # 减小上下边距
|
layout.setContentsMargins(4, 1, 4, 1) # 减小上下边距
|
||||||
layout.setSpacing(8)
|
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 = 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 = QtWidgets.QLineEdit()
|
||||||
path_edit.setPlaceholderText("输入或选择模型路径...")
|
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 = QtWidgets.QPushButton()
|
||||||
add_btn.setIcon(QtGui.QIcon(":fileOpen.png"))
|
add_btn.setIcon(QtGui.QIcon(":fileOpen.png"))
|
||||||
add_btn.setToolTip("浏览...")
|
add_btn.setToolTip("浏览...")
|
||||||
add_btn.setFixedSize(24, 24) # 减小按钮大小
|
add_btn.setFixedSize(22, 22)
|
||||||
|
|
||||||
layout.addWidget(name_label)
|
# 添加到主布局
|
||||||
layout.addWidget(path_edit)
|
layout.addWidget(left_container, stretch=1) # 左侧容器占据所有可用空间
|
||||||
layout.addWidget(add_btn)
|
layout.addWidget(add_btn) # 按钮右对齐
|
||||||
|
|
||||||
# 设置样式
|
# 设置样式
|
||||||
item.setStyleSheet("""
|
item.setStyleSheet("""
|
||||||
@ -251,8 +282,9 @@ class MeshesTab(QtWidgets.QWidget):
|
|||||||
background: #3D3D3D;
|
background: #3D3D3D;
|
||||||
border: 1px solid #555555;
|
border: 1px solid #555555;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
padding: 4px 8px;
|
padding: 2px 4px;
|
||||||
color: #CCCCCC;
|
color: #CCCCCC;
|
||||||
|
min-height: 22px;
|
||||||
}
|
}
|
||||||
QLineEdit:hover {
|
QLineEdit:hover {
|
||||||
border: 1px solid #666666;
|
border: 1px solid #666666;
|
||||||
@ -265,6 +297,7 @@ class MeshesTab(QtWidgets.QWidget):
|
|||||||
background: #3D3D3D;
|
background: #3D3D3D;
|
||||||
border: 1px solid #555555;
|
border: 1px solid #555555;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
|
padding: 2px;
|
||||||
}
|
}
|
||||||
QPushButton:hover {
|
QPushButton:hover {
|
||||||
background: #454545;
|
background: #454545;
|
||||||
@ -274,6 +307,9 @@ class MeshesTab(QtWidgets.QWidget):
|
|||||||
}
|
}
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
# 设置大小策略
|
||||||
|
item.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
|
||||||
|
|
||||||
return item
|
return item
|
||||||
|
|
||||||
def _create_tool_button(self, text, icon_name, fallback_icon=None):
|
def _create_tool_button(self, text, icon_name, fallback_icon=None):
|
||||||
|
Loading…
Reference in New Issue
Block a user