add config and change logo
This commit is contained in:
71
components/settings_interface.py
Normal file
71
components/settings_interface.py
Normal file
@@ -0,0 +1,71 @@
|
||||
from PySide6.QtCore import Qt
|
||||
from PySide6.QtWidgets import QWidget
|
||||
from qfluentwidgets import (
|
||||
ScrollArea, ExpandLayout, SettingCardGroup,
|
||||
OptionsSettingCard, CustomColorSettingCard, setTheme, setThemeColor,
|
||||
SwitchSettingCard, InfoBar, InfoBarPosition
|
||||
)
|
||||
from qfluentwidgets import FluentIcon as Fi
|
||||
from common.config import cfg
|
||||
|
||||
|
||||
class SettingsInterface(ScrollArea):
|
||||
|
||||
def __init__(self, name: str, parent=None):
|
||||
super().__init__(parent)
|
||||
self.setObjectName(name.replace(" ", "-"))
|
||||
self.cw = QWidget(self)
|
||||
self.ely = ExpandLayout(self.cw)
|
||||
self.setWidget(self.cw)
|
||||
self.setWidgetResizable(True)
|
||||
self.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
|
||||
self.enableTransparentBackground()
|
||||
|
||||
self.personal_group = SettingCardGroup("个性化", self.cw)
|
||||
self.theme_card = OptionsSettingCard(
|
||||
cfg.themeMode,
|
||||
Fi.BRUSH,
|
||||
"应用主题",
|
||||
"修改应用的外观",
|
||||
texts=["浅色", "深色", "跟随系统"],
|
||||
parent=self.personal_group,
|
||||
)
|
||||
self.theme_color_card = CustomColorSettingCard(
|
||||
cfg.themeColor,
|
||||
Fi.PALETTE,
|
||||
"主题色",
|
||||
"修改应用的主题颜色",
|
||||
parent=self.personal_group,
|
||||
)
|
||||
self.switch_animation_card = SwitchSettingCard(
|
||||
Fi.SCROLL,
|
||||
"切换动画",
|
||||
"切换不同页面时是否显示动画",
|
||||
configItem=cfg.switch_animation,
|
||||
parent=self.personal_group,
|
||||
)
|
||||
self.smooth_mode_card = OptionsSettingCard(
|
||||
cfg.smooth_mode,
|
||||
Fi.LEAF,
|
||||
"滚动模式",
|
||||
"修改视图滚动模式",
|
||||
texts=["无滚动", "匀速滚动", "线性滚动", "二次缓动", "余弦平滑"],
|
||||
parent=self.personal_group,
|
||||
)
|
||||
|
||||
self.personal_group.addSettingCard(self.theme_card)
|
||||
self.personal_group.addSettingCard(self.theme_color_card)
|
||||
self.personal_group.addSettingCard(self.switch_animation_card)
|
||||
self.personal_group.addSettingCard(self.smooth_mode_card)
|
||||
|
||||
self.ely.setSpacing(28)
|
||||
self.ely.setContentsMargins(20, 20, 20, 20)
|
||||
self.ely.addWidget(self.personal_group)
|
||||
|
||||
cfg.themeChanged.connect(setTheme)
|
||||
cfg.appRestartSig.connect(self.show_restart_tip)
|
||||
self.theme_color_card.colorChanged.connect(lambda c: setThemeColor(c))
|
||||
|
||||
def show_restart_tip(self):
|
||||
InfoBar.warning("", "设置已更新,重启应用生效。", duration=5000,
|
||||
position=InfoBarPosition.BOTTOM_RIGHT, parent=self.window())
|
||||
Reference in New Issue
Block a user