修改答辩题目模块

This commit is contained in:
2025-06-29 02:27:41 +08:00
parent ce9d0b64f2
commit cd5a0f44c7

View File

@@ -2,9 +2,10 @@ from functools import wraps
from typing import Literal, Callable from typing import Literal, Callable
from PySide6.QtCore import Qt, Signal, QThread, QEvent from PySide6.QtCore import Qt, Signal, QThread, QEvent
from PySide6.QtWidgets import QHBoxLayout, QVBoxLayout, QFileDialog, QButtonGroup, QWidget, QApplication from PySide6.QtWidgets import QHBoxLayout, QVBoxLayout, QFileDialog, QButtonGroup, QWidget, QApplication, QStackedWidget
from qfluentwidgets import GroupHeaderCardWidget, PushButton, IconWidget, BodyLabel, PrimaryPushButton, FluentIcon, \ from qfluentwidgets import GroupHeaderCardWidget, PushButton, IconWidget, BodyLabel, PrimaryPushButton, FluentIcon, \
LineEdit, RadioButton, HyperlinkButton, FlyoutViewBase, TeachingTip, TeachingTipTailPosition LineEdit, RadioButton, HyperlinkButton, FlyoutViewBase, TeachingTip, TeachingTipTailPosition, SegmentedWidget, \
SimpleCardWidget, DisplayLabel
from module.worker import DTGWorker from module.worker import DTGWorker
from ui import MAIN_THEME_COLOR from ui import MAIN_THEME_COLOR
@@ -169,15 +170,16 @@ class ExportSettingsCard(GroupHeaderCardWidget):
self.updateSignal.emit('n', f_name) self.updateSignal.emit('n', f_name)
class DefenseWidget(Widget): class DPMode(QWidget):
errorSignal = Signal(str, str) errorSignal = Signal(str, str)
def __init__(self, key: str, parent=None): def __init__(self, parent=None):
super().__init__(key, parent) super().__init__(parent)
self.initCard = InitSettingCard(self) self.initCard = InitSettingCard(self)
self.exportCard = ExportSettingsCard(self) self.exportCard = ExportSettingsCard(self)
self.vbox = QVBoxLayout(self) self.vbox = QVBoxLayout(self)
self.vbox.setContentsMargins(0, 0, 0, 0)
self.vbox.addWidget(self.initCard) self.vbox.addWidget(self.initCard)
self.vbox.addWidget(self.exportCard) self.vbox.addWidget(self.exportCard)
@@ -301,3 +303,53 @@ class DefenseWidget(Widget):
def show_error(self, title: str, content: str): def show_error(self, title: str, content: str):
self.errorSignal.emit(title, content) self.errorSignal.emit(title, content)
class DOMode(SimpleCardWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.vbox = QVBoxLayout(self)
self.vbox.setContentsMargins(0, 0, 0, 0)
self.label = DisplayLabel("🚧", self)
self.label.setAlignment(Qt.AlignCenter)
self.vbox.addStretch(1)
self.vbox.addWidget(self.label)
self.vbox.addStretch(1)
class DefenseWidget(Widget):
errorSignal = Signal(str, str)
def __init__(self, key: str, parent=None):
super().__init__(key, parent)
self.vbox = QVBoxLayout(self)
self.stack = QStackedWidget(self)
self.menu = SegmentedWidget(self)
self.dpMode = DPMode(self)
self.doMode = DOMode(self)
self.addSubInterface(self.dpMode, 'DPMode', '书面答辩')
self.addSubInterface(self.doMode, 'DOMode', '口头答辩')
self.menu.setCurrentItem('DPMode')
self.vbox.addWidget(self.menu)
self.vbox.addWidget(self.stack)
self.vbox.addStretch(1)
def addSubInterface(self, widget: QWidget, objectName: str, text: str):
widget.setObjectName(objectName)
self.stack.addWidget(widget)
# 使用全局唯一的 objectName 作为路由键
self.menu.addItem(
routeKey=objectName,
text=text,
onClick=lambda: self.stack.setCurrentWidget(widget)
)
def onCurrentIndexChanged(self, index):
widget = self.stack.widget(index)
self.menu.setCurrentItem(widget.objectName())