style(gui): 打包选项标签左对齐,控件列自动对齐

This commit is contained in:
2026-07-28 10:59:13 +08:00
parent c1a3152b4c
commit d1598d2a5a
+29 -14
View File
@@ -585,39 +585,54 @@ class MainWindow(QMainWindow):
input_handling_row.addWidget(self.clear_after_build_check)
input_handling_row.addStretch(1)
# ---- 网格布局:4 列网格,每行两个选项组 ----
# 第 0 行:[换盘 G-code | 跨全行]
grid.addWidget(QLabel("换盘 G-code"), 0, 0)
# 标签列统一宽度,控件自然对齐
left_labels = ["新输入的默认份数", "换盘后等待时间", "最后换盘", "3MF 元数据", "批处理模式"]
right_labels = ["热床降温", "剩余时间板号", "G-code 补丁", "ZIP 压缩", "输入处理"]
# 计算两侧标签最大宽度,保证控件列对齐
font_metrics = self.fontMetrics()
left_width = max(font_metrics.horizontalAdvance(t) if hasattr(font_metrics, 'horizontalAdvance') else font_metrics.width(t) for t in left_labels) + 12
right_width = max(font_metrics.horizontalAdvance(t) if hasattr(font_metrics, 'horizontalAdvance') else font_metrics.width(t) for t in right_labels) + 12
grid.setColumnMinimumWidth(0, left_width)
grid.setColumnMinimumWidth(2, right_width)
# 标签左对齐
for label_text, row, col in [
("换盘 G-code", 0, 0),
("新输入的默认份数", 1, 0),
("换盘后等待时间", 2, 0),
("最后换盘", 3, 0),
("3MF 元数据", 4, 0),
("批处理模式", 5, 0),
("热床降温", 1, 2),
("剩余时间板号", 2, 2),
("G-code 补丁", 3, 2),
("ZIP 压缩", 4, 2),
("输入处理", 5, 2),
]:
label = QLabel(label_text)
label.setAlignment(Qt.AlignLeft | Qt.AlignVCenter)
grid.addWidget(label, row, col)
# 第 0 行:换盘 G-code 跨全行
grid.addLayout(swap_gcode_row, 0, 1, 1, 3)
# 第 1 行:默认份数 | 热床降温
grid.addWidget(QLabel("新输入的默认份数"), 1, 0)
grid.addWidget(self.default_copies_spin, 1, 1)
grid.addWidget(QLabel("热床降温"), 1, 2)
grid.addLayout(bed_row, 1, 3)
# 第 2 行:换盘后等待 | 剩余时间板号
grid.addWidget(QLabel("换盘后等待时间"), 2, 0)
grid.addLayout(eject_wait_row, 2, 1)
grid.addWidget(QLabel("剩余时间板号"), 2, 2)
grid.addWidget(self.show_plate_number_check, 2, 3)
# 第 3 行:最后换盘 | G-code 补丁
grid.addWidget(QLabel("最后换盘"), 3, 0)
grid.addWidget(self.swap_final_check, 3, 1)
grid.addWidget(QLabel("G-code 补丁"), 3, 2)
grid.addLayout(patch_row, 3, 3)
# 第 4 行:3MF 元数据 | ZIP 压缩
grid.addWidget(QLabel("3MF 元数据"), 4, 0)
grid.addWidget(self.metadata_combo, 4, 1)
grid.addWidget(QLabel("ZIP 压缩"), 4, 2)
grid.addWidget(self.zip_level_combo, 4, 3)
# 第 5 行:批处理模式 | 输入处理
grid.addWidget(QLabel("批处理模式"), 5, 0)
grid.addWidget(self.individual_batch_check, 5, 1)
grid.addWidget(QLabel("输入处理"), 5, 2)
grid.addLayout(input_handling_row, 5, 3)
root.addWidget(options_group)
@@ -802,7 +817,7 @@ class MainWindow(QMainWindow):
self,
"独立批处理模式",
"独立批处理模式将每一行输入作为独立的构建任务。\n\n"
"示例:如果你添加了 20 个单 3MF 文件并设置份数为 5"
"示例:如果你添加了 20 个单 3MF 文件并设置份数为 5"
"点击“构建 3MF”将创建 20 个独立的打包文件。"
"每个输出文件仅包含该源文件重复 5 次的内容。\n\n"
"这个功能适用于快速将大量独立的 3MF 作业批量转换为多份数的 "