123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- from PyQt6.QtCore import *
- from PyQt6.QtWidgets import *
- from PyQt6.QtGui import *
- from qfluentwidgets import *
- from qfluentwidgets import FluentIcon as FIF
- from .common.config import cfg, HELP_URL, FEEDBACK_URL, AUTHOR, VERSION, YEAR, isWin11
- from .common.signal_bus import signalBus
- from .common.style_sheet import StyleSheet
- class MainSetting(ScrollArea):
- def __init__(self, parent=None):
- super().__init__(parent=parent)
- self.scrollWidget = QWidget()
- self.expandLayout = ExpandLayout(self.scrollWidget)
-
- self.settingLabel = QLabel('设置', self)
-
- self.musicInThisPCGroup = SettingCardGroup(
- '资源目录', self.scrollWidget)
- self.downloadFolderCard = PushSettingCard(
- '选择文件夹',
- FIF.DOWNLOAD,
- '下载目录',
- cfg.get(cfg.downloadFolder),
- self.musicInThisPCGroup
- )
-
- self.personalGroup = SettingCardGroup(
- '个性化', self.scrollWidget)
- self.micaCard = SwitchSettingCard(
- FIF.TRANSPARENT,
- '云母效果',
- '窗口和表面显示半透明',
- cfg.micaEnabled,
- self.personalGroup
- )
- self.themeCard = OptionsSettingCard(
- cfg.themeMode,
- FIF.BRUSH,
- '主题外观',
- '调整你的灵镜外观',
- texts=[
- '浅色', '深色',
- '跟随系统'
- ],
- parent=self.personalGroup
- )
- self.themeColorCard = CustomColorSettingCard(
- cfg.themeColor,
- FIF.PALETTE,
- '主题颜色',
- '调整你的灵镜颜色',
- self.personalGroup
- )
- '''
- self.zoomCard = OptionsSettingCard(
- cfg.dpiScale,
- FIF.ZOOM,
- '界面缩放',
- '调整小部件和字体的大小',
- texts=[
- "100%", "125%", "150%", "175%", "200%",
- '跟随系统'
- ],
- parent=self.personalGroup
- )
- '''
- self.blurRadiusCard = RangeSettingCard(
- cfg.blurRadius,
- FIF.ALBUM,
- '亚克力磨砂半径',
- '磨砂半径越大,图像越模糊',
- parent=self.personalGroup
- )
-
- self.updateSoftwareGroup = SettingCardGroup(
- '版本更新', self.scrollWidget)
- self.updateOnStartUpCard = SwitchSettingCard(
- FIF.UPDATE,
- '在灵镜启动时检查更新',
- '新版本将更加稳定并拥有更多功能(建议启用此选项)',
- configItem=cfg.checkUpdateAtStartUp,
- parent=self.updateSoftwareGroup
- )
-
- self.aboutGroup = SettingCardGroup('关于灵镜', self.scrollWidget)
- self.helpCard = HyperlinkCard(
- HELP_URL,
- '打开帮助页面',
- FIF.HELP,
- '帮助',
- '发现新功能并了解灵镜有关的使用技巧',
- self.aboutGroup
- )
- self.feedbackCard = PrimaryPushSettingCard(
- '提供反馈',
- FIF.FEEDBACK,
- '提供反馈',
- '帮助我们改进灵镜',
- self.aboutGroup
- )
- self.aboutCard = PrimaryPushSettingCard(
- '检查更新',
- FIF.INFO,
- '关于',
- '© 版权所有' + f" {YEAR}, {AUTHOR}. " +
- "当前版本 " + VERSION,
- self.aboutGroup
- )
- self.__initWidget()
- def __initWidget(self):
- self.resize(1000, 800)
- self.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
- self.setViewportMargins(0, 80, 0, 20)
- self.setWidget(self.scrollWidget)
- self.setWidgetResizable(True)
- self.setObjectName('settingInterface')
-
- self.scrollWidget.setObjectName('scrollWidget')
- self.settingLabel.setObjectName('settingLabel')
- StyleSheet.SETTING_INTERFACE.apply(self)
- self.micaCard.setEnabled(isWin11())
-
- self.__initLayout()
- self.__connectSignalToSlot()
- def __initLayout(self):
- self.settingLabel.move(36, 30)
-
- self.musicInThisPCGroup.addSettingCard(self.downloadFolderCard)
- self.personalGroup.addSettingCard(self.micaCard)
- self.personalGroup.addSettingCard(self.themeCard)
- self.personalGroup.addSettingCard(self.themeColorCard)
-
-
- self.personalGroup.addSettingCard(self.blurRadiusCard)
- self.updateSoftwareGroup.addSettingCard(self.updateOnStartUpCard)
- self.aboutGroup.addSettingCard(self.helpCard)
- self.aboutGroup.addSettingCard(self.feedbackCard)
- self.aboutGroup.addSettingCard(self.aboutCard)
-
- self.expandLayout.setSpacing(28)
- self.expandLayout.setContentsMargins(36, 10, 36, 0)
- self.expandLayout.addWidget(self.musicInThisPCGroup)
- self.expandLayout.addWidget(self.personalGroup)
- self.expandLayout.addWidget(self.updateSoftwareGroup)
- self.expandLayout.addWidget(self.aboutGroup)
- def __showRestartTooltip(self):
- """ show restart tooltip """
- InfoBar.success(
- '更新成功',
- '配置将在重启后生效',
- duration=1500,
- parent=self
- )
- def __onDownloadFolderCardClicked(self):
- """ download folder card clicked slot """
- folder = QFileDialog.getExistingDirectory(
- self, '选择文件夹', "./")
- if not folder or cfg.get(cfg.downloadFolder) == folder:
- return
- cfg.set(cfg.downloadFolder, folder)
- self.downloadFolderCard.setContent(folder)
- def __connectSignalToSlot(self):
- """ connect signal to slot """
- cfg.appRestartSig.connect(self.__showRestartTooltip)
-
- self.downloadFolderCard.clicked.connect(
- self.__onDownloadFolderCardClicked)
-
- self.themeCard.optionChanged.connect(lambda ci: setTheme(cfg.get(ci)))
- self.themeColorCard.colorChanged.connect(lambda c: setThemeColor(c))
- self.micaCard.checkedChanged.connect(signalBus.micaEnableChanged)
-
- self.feedbackCard.clicked.connect(
- lambda: QDesktopServices.openUrl(QUrl(FEEDBACK_URL)))
|