功能添加:可选文件类型 PDF 或 Word
This commit is contained in:
@@ -2,9 +2,9 @@ from functools import wraps
|
||||
from typing import Literal, Callable
|
||||
|
||||
from PySide6.QtCore import Qt, Signal, QThread
|
||||
from PySide6.QtWidgets import QHBoxLayout, QVBoxLayout, QFileDialog
|
||||
from PySide6.QtWidgets import QHBoxLayout, QVBoxLayout, QFileDialog, QButtonGroup, QWidget
|
||||
from qfluentwidgets import GroupHeaderCardWidget, PushButton, IconWidget, BodyLabel, PrimaryPushButton, FluentIcon, \
|
||||
LineEdit
|
||||
LineEdit, RadioButton
|
||||
|
||||
from module.worker import DTGWorker
|
||||
from ui.components.infobar import ProgressInfoBar
|
||||
@@ -61,7 +61,17 @@ class ExportSettingsCard(GroupHeaderCardWidget):
|
||||
self.chooseExportDirectoryButton = PushButton("选择")
|
||||
self.exportFileNameLineEdit = LineEdit()
|
||||
self.startButton = PrimaryPushButton(FluentIcon.PLAY_SOLID, "开始")
|
||||
self.pdfRadio = RadioButton("PDF")
|
||||
self.wordRadio = RadioButton("Word")
|
||||
self.radioWidget = QWidget(self)
|
||||
self.radioHbox = QHBoxLayout(self.radioWidget)
|
||||
self.radioGroup = QButtonGroup(self.radioWidget)
|
||||
|
||||
self.radioGroup.addButton(self.pdfRadio)
|
||||
self.radioGroup.addButton(self.wordRadio)
|
||||
self.radioHbox.addWidget(self.pdfRadio)
|
||||
self.radioHbox.addWidget(self.wordRadio)
|
||||
self.pdfRadio.setChecked(True)
|
||||
self.hintIcon = IconWidget(FluentIcon.INFO.icon(color=MAIN_THEME_COLOR))
|
||||
self.hintLabel = BodyLabel("点击开始按钮以开始生成 👉")
|
||||
self.chooseExportDirectoryButton.setFixedWidth(120)
|
||||
@@ -85,7 +95,8 @@ class ExportSettingsCard(GroupHeaderCardWidget):
|
||||
self.chooseExportDirectoryButton)
|
||||
self.fnGroup = self.addGroup(FluentIcon.DOCUMENT, "导出文件名", "输入导出文件的名称",
|
||||
self.exportFileNameLineEdit)
|
||||
self.fnGroup.setSeparatorVisible(True)
|
||||
self.exportFormatGroup = self.addGroup(FluentIcon.DOCUMENT, "导出文件格式", "选择导出文件的格式", self.radioWidget)
|
||||
self.exportFormatGroup.setSeparatorVisible(True)
|
||||
|
||||
self.vBoxLayout.addLayout(self.bottomLayout)
|
||||
|
||||
@@ -148,12 +159,12 @@ class DefenseWidget(Widget):
|
||||
self.pib.set_title('请稍后')
|
||||
|
||||
def set_pb_value(self, value: int) -> None:
|
||||
self.pib.set_progress(value)
|
||||
if value == 100:
|
||||
self.pib.set_progress(101)
|
||||
self.pib.set_title('正在转换文件')
|
||||
elif value == -1:
|
||||
if value == -1:
|
||||
self.successFlag = False
|
||||
self.pib.set_progress(value)
|
||||
|
||||
def set_pb_msg(self, value: str) -> None:
|
||||
self.pib.set_title(value)
|
||||
|
||||
def enable_start_check(func: Callable):
|
||||
@wraps(func)
|
||||
@@ -204,7 +215,8 @@ class DefenseWidget(Widget):
|
||||
self.input_student_filepath,
|
||||
self.input_question_filepath,
|
||||
self.output_filepath,
|
||||
self.output_filename
|
||||
self.output_filename,
|
||||
self.exportCard.radioGroup.checkedButton().text().lower()
|
||||
)
|
||||
self.worker.moveToThread(self.thread)
|
||||
|
||||
@@ -214,7 +226,8 @@ class DefenseWidget(Widget):
|
||||
|
||||
# 线程启动与信号连接
|
||||
self.thread.started.connect(self.worker.run)
|
||||
self.worker.progress.connect(self.set_pb_value)
|
||||
self.worker.progress[int].connect(self.set_pb_value)
|
||||
self.worker.progress[str].connect(self.set_pb_msg)
|
||||
self.worker.error.connect(self.show_error)
|
||||
|
||||
self.worker.finished.connect(self.thread.quit)
|
||||
|
||||
Reference in New Issue
Block a user