# coding: utf-8 from loguru import logger from PyQt6.QtCore import Qt from PyQt6.QtWidgets import QHBoxLayout, QVBoxLayout, QWidget from qfluentwidgets import ScrollArea, TitleLabel from app.core import GetPackThread, lang from app.view.components.gb_information_card import GbInformationCard class NumInformationWidget(QWidget): def __init__(self, parent=None): super(NumInformationWidget, self).__init__(parent) self.hBoxLayout = QHBoxLayout(self) self.basicSizeCard = GbInformationCard(0, lang("用户组基础容量"), self) self.packSizeCard = GbInformationCard(0, lang("有效容量包附加附加容量"), self) self.usedSizeCard = GbInformationCard(0, lang("已使用容量"), self) self.totalSizeCard = GbInformationCard(0, lang("总容量"), self) self.hBoxLayout.setSpacing(10) self.hBoxLayout.addWidget(self.basicSizeCard) self.hBoxLayout.addWidget(self.packSizeCard) self.hBoxLayout.addWidget(self.usedSizeCard) self.hBoxLayout.addWidget(self.totalSizeCard) class StoragespaceInterface(ScrollArea): def __init__(self, parent=None): super().__init__(parent=parent) self.widgets = QWidget() self.vBoxLayout = QVBoxLayout(self.widgets) self.firstLoad = True self.titleLabel = TitleLabel(lang("存储配额"), self) self.numInformationWidget = NumInformationWidget(self) self.__initWidget() self._loadUserCustomStorage() def __initWidget(self): self.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff) self.setWidget(self.widgets) self.setWidgetResizable(True) self.setObjectName("storageInterface") self.widgets.setObjectName("scrollWidgets") self.widgets.setStyleSheet("background:transparent;border:none;") self.setStyleSheet("background:transparent;border:none;") self.titleLabel.setContentsMargins(10, 5, 5, 5) self.__initLayout() def __initLayout(self): self.vBoxLayout.setAlignment(Qt.AlignmentFlag.AlignTop) self.vBoxLayout.addWidget(self.titleLabel) self.vBoxLayout.addWidget(self.numInformationWidget) def _loadUserCustomStorage(self): if not self.firstLoad: return self.packThread = GetPackThread() self.packThread.storageDictSignal.connect(self._successGetPack) self.packThread.start() def _successGetPack(self, datas): self.packData = datas["data"] self.firstLoad = False self.numInformationWidget.packSizeCard.updateValue(self.packData["pack"]) self.numInformationWidget.basicSizeCard.updateValue(self.packData["base"]) self.numInformationWidget.usedSizeCard.updateValue(self.packData["used"]) self.numInformationWidget.totalSizeCard.updateValue(self.packData["total"]) logger.success("用户配额加载,已刷新")