修改答辩题目模块
This commit is contained in:
@@ -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())
|
||||||
|
|||||||
Reference in New Issue
Block a user