feat(gui): 新增查看换盘G-code按钮,弹出只读窗口展示内容
This commit is contained in:
@@ -34,6 +34,7 @@ try:
|
||||
QAbstractItemView,
|
||||
QCheckBox,
|
||||
QComboBox,
|
||||
QDialog,
|
||||
QFileDialog,
|
||||
QFormLayout,
|
||||
QGridLayout,
|
||||
@@ -512,10 +513,13 @@ class MainWindow(QMainWindow):
|
||||
self.swap_gcode_combo.setMinimumWidth(240)
|
||||
self.swap_gcode_combo.setMaximumWidth(440)
|
||||
self.refresh_button = QPushButton(t("gui.options.refresh"))
|
||||
self.view_gcode_button = QPushButton(t("gui.options.view_gcode"))
|
||||
self.open_folder_button = QPushButton(t("gui.options.open_folder"))
|
||||
self.refresh_button.setFixedWidth(self.refresh_button.sizeHint().width())
|
||||
self.view_gcode_button.setFixedWidth(self.view_gcode_button.sizeHint().width())
|
||||
self.open_folder_button.setFixedWidth(self.open_folder_button.sizeHint().width())
|
||||
self.refresh_button.clicked.connect(self.load_swap_gcode_to_combo)
|
||||
self.view_gcode_button.clicked.connect(self.view_swap_gcode)
|
||||
self.open_folder_button.clicked.connect(self.open_swap_gcode_folder)
|
||||
|
||||
# 默认份数
|
||||
@@ -619,6 +623,7 @@ class MainWindow(QMainWindow):
|
||||
grid.addWidget(self.swap_gcode_combo, 0, 1, 1, 2)
|
||||
swap_btn_row = QHBoxLayout()
|
||||
swap_btn_row.addWidget(self.refresh_button)
|
||||
swap_btn_row.addWidget(self.view_gcode_button)
|
||||
swap_btn_row.addWidget(self.open_folder_button)
|
||||
swap_btn_row.addStretch(1)
|
||||
grid.addLayout(swap_btn_row, 0, 3)
|
||||
@@ -889,6 +894,35 @@ class MainWindow(QMainWindow):
|
||||
folder.mkdir(parents=True, exist_ok=True)
|
||||
self.open_path(folder)
|
||||
|
||||
def view_swap_gcode(self) -> None:
|
||||
"""在弹出的只读窗口中展示当前选中的换盘 G-code 内容。"""
|
||||
gcode_path = self.swap_gcode_combo.currentData()
|
||||
if not gcode_path:
|
||||
return
|
||||
try:
|
||||
text = Path(gcode_path).read_text(encoding="utf-8-sig", errors="replace")
|
||||
except OSError as exc:
|
||||
QMessageBox.warning(self, t("gui.dialog.warning.title"), str(exc))
|
||||
return
|
||||
|
||||
dialog = QDialog(self)
|
||||
dialog.setWindowTitle(t("gui.dialog.view_gcode.title") + " - " + Path(gcode_path).name)
|
||||
dialog.resize(700, 480)
|
||||
layout = QVBoxLayout(dialog)
|
||||
editor = QTextEdit()
|
||||
editor.setReadOnly(True)
|
||||
font = QFont("Consolas", 10)
|
||||
editor.setFont(font)
|
||||
editor.setText(text)
|
||||
layout.addWidget(editor)
|
||||
close_btn = QPushButton(t("gui.button.close"))
|
||||
close_btn.clicked.connect(dialog.close)
|
||||
btn_row = QHBoxLayout()
|
||||
btn_row.addStretch(1)
|
||||
btn_row.addWidget(close_btn)
|
||||
layout.addLayout(btn_row)
|
||||
dialog.exec()
|
||||
|
||||
def open_patch_config(self) -> None:
|
||||
"""打开 G-code 补丁配置文件。"""
|
||||
path = default_patch_config_path()
|
||||
@@ -1490,9 +1524,11 @@ class MainWindow(QMainWindow):
|
||||
self.options_group.setTitle(t("gui.options.group.title"))
|
||||
self.refresh_button.setText(t("gui.options.refresh"))
|
||||
self.open_folder_button.setText(t("gui.options.open_folder"))
|
||||
self.view_gcode_button.setText(t("gui.options.view_gcode"))
|
||||
# 重新计算按钮宽度以适应翻译后的文本长度
|
||||
self.refresh_button.setFixedWidth(self.refresh_button.sizeHint().width())
|
||||
self.open_folder_button.setFixedWidth(self.open_folder_button.sizeHint().width())
|
||||
self.view_gcode_button.setFixedWidth(self.view_gcode_button.sizeHint().width())
|
||||
self.bed_cooldown_check.setText(t("gui.options.bed_cooldown"))
|
||||
self.eject_wait_check.setText(t("gui.options.eject_wait"))
|
||||
self.show_plate_number_check.setText(t("gui.options.plate_number"))
|
||||
|
||||
Reference in New Issue
Block a user