from msilib import Dialog from tkinter.tix import Form from PySide6 import QtCore, QtWidgets, QtGui from qframelesswindow import AcrylicWindow, StandardTitleBar from qfluentwidgets import (SettingCardGroup, SwitchSettingCard, FolderListSettingCard, OptionsSettingCard, PushSettingCard, HyperlinkCard, PrimaryPushSettingCard, ScrollArea, ComboBoxSettingCard, ExpandLayout, Theme, CustomColorSettingCard, setTheme, setThemeColor, RangeSettingCard, isDarkTheme, OptionsConfigItem, OptionsValidator, ConfigItem, RangeValidator, IntValidator, Dialog, LineEdit) from qfluentwidgets import FluentIcon as FIF from PySide6.QtCore import Qt, Signal, QUrl, QStandardPaths from PySide6.QtWidgets import QWidget, QLabel, QFileDialog, QVBoxLayout, QApplication from .dialog.AddBookDialog import AddBookDialog from .dialog.AddBookInstanceDialog import AddBookInstanceDialog from .dialog.AddUserDialog import AddUserDialog from .gallery_interface import GalleryInterface from ..common.Manager import UserManager from ..common.style_sheet import StyleSheet from ..common.translator import Translator class AdminTools(ScrollArea): def __init__(self, parent=None): super().__init__(parent=parent) # setting label self.settingLabel = QLabel(self.tr("管理员工具"), self) self.scrollWidget = QWidget() self.expandLayout = ExpandLayout(self.scrollWidget) self.addBookInfoCard = SettingCardGroup(self.tr('书籍信息'), self.scrollWidget) self.addBookInfo = PushSettingCard( self.tr('录入书籍信息'), FIF.DOWNLOAD, self.tr("开始操作"), "录入书籍的详细信息, 包括ISBN, 书名, 作者, 分类", self.addBookInfoCard ) self.addBookInstance = PushSettingCard( self.tr('添加书籍'), FIF.DOWNLOAD, self.tr("开始操作"), "将一本书添加到数据库中", self.addBookInfoCard ) self.addUserInfoCard = SettingCardGroup(self.tr('人员信息'), self.scrollWidget) self.addUser = PushSettingCard( self.tr('添加用户'), FIF.ADD, self.tr("开始操作"), "在数据库中创建一名用户", self.addBookInfoCard ) self.__initWidget() def __initWidget(self): self.resize(1000, 800) self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.setViewportMargins(0, 80, 0, 20) self.setWidget(self.scrollWidget) self.setWidgetResizable(True) # initialize style sheet self.scrollWidget.setObjectName('scrollWidget') self.settingLabel.setObjectName('settingLabel') StyleSheet.SETTING_INTERFACE.apply(self) # initialize layout self.__initLayout() self.__connectSignalToSlot() def __initLayout(self): self.settingLabel.move(36, 30) self.addBookInfoCard.addSettingCard(self.addBookInfo) self.addBookInfoCard.addSettingCard(self.addBookInstance) self.expandLayout.addWidget(self.addBookInfoCard) self.addUserInfoCard.addSettingCard(self.addUser) self.expandLayout.addWidget(self.addUserInfoCard) self.expandLayout.setSpacing(28) self.expandLayout.setContentsMargins(36, 10, 36, 0) def __connectSignalToSlot(self): self.addBookInfo.clicked.connect(self.callAddBookInfo) self.addBookInstance.clicked.connect(self.callAddBookInstance) self.addUser.clicked.connect(self.callAddUser) def callAddBookInfo(self): self.addBookInfoDiaLog = AddBookDialog() self.addBookInfoDiaLog.show() def callAddBookInstance(self): self.addBookInstanceDialog = AddBookInstanceDialog() self.addBookInstanceDialog.show() def callAddUser(self): self.addUserDialog = AddUserDialog() self.addUserDialog.show()