# coding: utf-8 from PyQt6.QtCore import Qt from PyQt6.QtWidgets import QVBoxLayout, QWidget from qfluentwidgets import PopUpAniStackedWidget, SegmentedWidget, TitleLabel from app.core import lang from app.view.widgets.download_widget import DownloadScrollWidget from app.view.widgets.upload_widget import UploadScrollWidget class TaskInterface(QWidget): def __init__(self, parent=None): super().__init__(parent=parent) self.vBoxLayout = QVBoxLayout(self) self.titleLabel = TitleLabel(lang("任务管理"), self) self.pivot = SegmentedWidget(self) self.stackedWidget = PopUpAniStackedWidget(self) self.uploadScrollWidget = UploadScrollWidget(self) self.downloadScrollWidget = DownloadScrollWidget(self) self.__initWidget() def __initWidget(self): self.setObjectName("taskInterface") self.titleLabel.setContentsMargins(10, 5, 5, 5) self.pivot.setMinimumWidth(200) self.pivot.addItem("Upload", lang("文件上传")) self.pivot.addItem("Download", lang("文件下载")) self.pivot.setCurrentItem("Upload") self.pivot.currentItemChanged.connect(self._changePivot) self.stackedWidget.addWidget(self.uploadScrollWidget) self.stackedWidget.addWidget(self.downloadScrollWidget) self.__initLayout() def _changePivot(self, routeKey): self.stackedWidget.setCurrentWidget( self.stackedWidget.findChild(QWidget, routeKey + "ScrollWidget") ) self.pivot.setCurrentItem(routeKey) def __initLayout(self): self.vBoxLayout.addWidget( self.titleLabel, 0, Qt.AlignmentFlag.AlignTop | Qt.AlignmentFlag.AlignLeft ) self.vBoxLayout.addSpacing(5) self.vBoxLayout.addWidget( self.pivot, 0, Qt.AlignmentFlag.AlignTop | Qt.AlignmentFlag.AlignLeft ) self.vBoxLayout.addSpacing(5) self.vBoxLayout.addWidget(self.stackedWidget)