feat(app_detail_window): 添加应用预览图片功能并优化缓存管理
- 新增HorizontalFlipView组件显示应用预览图片 - 实现图片下载缓存机制和自动清理功能 - 支持多种API返回格式的图片数据解析 - 添加详细的日志记录和错误处理 - 移除不再使用的云母效果相关代码
This commit is contained in:
@@ -48,7 +48,7 @@ from qfluentwidgets import (
|
||||
PrimaryPushButton, LineEdit, ComboBox, ProgressBar, TableWidget,
|
||||
ScrollArea, InfoBar, InfoBarPosition, NavigationInterface, NavigationItemPosition,
|
||||
FluentWindow, MSFluentWindow, FluentIcon, SimpleCardWidget, PrimaryPushSettingCard,
|
||||
OptionsSettingCard, QConfig, ConfigItem, OptionsConfigItem, BoolValidator, OptionsValidator, qconfig, SplashScreen
|
||||
OptionsSettingCard, QConfig, ConfigItem, OptionsConfigItem, BoolValidator, OptionsValidator, qconfig, SplashScreen, NavigationAvatarWidget
|
||||
)
|
||||
from qfluentwidgets import FluentTranslator
|
||||
from app_detail_window import AppDetailWindow
|
||||
@@ -69,11 +69,7 @@ class AppConfig(QConfig):
|
||||
OptionsValidator([0, 1])
|
||||
)
|
||||
|
||||
# 云母效果
|
||||
mica_effect = OptionsConfigItem(
|
||||
"General", "MicaEffect", True,
|
||||
OptionsValidator([True, False])
|
||||
)
|
||||
# 配置项已删除云母效果
|
||||
|
||||
# 创建配置文件目录
|
||||
config_dir = os.path.join(os.path.dirname(__file__), "config")
|
||||
@@ -2630,9 +2626,14 @@ class SettingsTab(QWidget):
|
||||
# 创建主布局
|
||||
self.main_layout = QVBoxLayout(self)
|
||||
|
||||
# 创建滚动区域
|
||||
# 创建滚动区域并设置无样式
|
||||
self.scroll_area = ScrollArea(self)
|
||||
self.scroll_area.setWidgetResizable(True)
|
||||
# 设置无样式但保留内容显示
|
||||
self.scroll_area.setFrameShape(QFrame.NoFrame)
|
||||
self.scroll_area.setStyleSheet("background-color: transparent; border: none;")
|
||||
self.scroll_area.verticalScrollBar().setStyleSheet("QScrollBar:vertical { width: 0px; }")
|
||||
self.scroll_area.horizontalScrollBar().setStyleSheet("QScrollBar:horizontal { height: 0px; }")
|
||||
|
||||
# 创建滚动内容控件
|
||||
self.scroll_content = QWidget()
|
||||
@@ -2682,25 +2683,9 @@ class SettingsTab(QWidget):
|
||||
|
||||
general_layout.addWidget(self.app_open_method_option)
|
||||
|
||||
# 添加云母效果选项
|
||||
self.mica_effect_option = OptionsSettingCard(
|
||||
icon=FluentIcon.INFO,
|
||||
title="启用云母效果",
|
||||
content="开启窗口的云母效果,提供更现代的视觉体验",
|
||||
texts=["是", "否"],
|
||||
configItem=app_config.mica_effect,
|
||||
parent=general_card
|
||||
)
|
||||
# 已删除云母效果选项
|
||||
|
||||
# 连接信号
|
||||
self.mica_effect_option.optionChanged.connect(self.on_mica_effect_changed)
|
||||
|
||||
general_layout.addWidget(self.mica_effect_option)
|
||||
|
||||
# 连接信号
|
||||
self.mica_effect_option.optionChanged.connect(self.on_mica_effect_changed)
|
||||
|
||||
# 已经在前面添加过了,这里不需要重复添加
|
||||
# 已经删除了云母效果选项
|
||||
|
||||
# 添加查看日志按钮
|
||||
general_layout.addSpacing(20)
|
||||
@@ -2729,23 +2714,7 @@ class SettingsTab(QWidget):
|
||||
"""应用打开方式设置变更处理"""
|
||||
app_config.app_open_method = index
|
||||
|
||||
def on_mica_effect_changed(self, index):
|
||||
"""云母效果设置变更处理"""
|
||||
app_config.mica_effect = (index == 0)
|
||||
# 显示提示,告知用户需要重启应用才能生效
|
||||
from qfluentwidgets import InfoBar, InfoBarPosition
|
||||
from PyQt5.QtWidgets import QApplication
|
||||
|
||||
# 创建Sweet Alert风格的提示
|
||||
InfoBar.warning(
|
||||
title="需要重启应用",
|
||||
content="云母效果设置已更新,需要重启应用才能生效。",
|
||||
orient=Qt.Horizontal,
|
||||
isClosable=True,
|
||||
position=InfoBarPosition.TOP_RIGHT,
|
||||
duration=3000,
|
||||
parent=self
|
||||
)
|
||||
# 已删除云母效果处理方法
|
||||
|
||||
def show_logs(self):
|
||||
"""显示应用日志"""
|
||||
@@ -2972,22 +2941,8 @@ class LeonAppGUI(MSFluentWindow):
|
||||
if os.path.exists(icon_path):
|
||||
self.setWindowIcon(QIcon(icon_path))
|
||||
|
||||
# 根据配置启用云母效果
|
||||
from qfluentwidgets import isDarkTheme
|
||||
if app_config.mica_effect:
|
||||
# 优先尝试设置云母效果
|
||||
if hasattr(self, 'setMicaEffect'):
|
||||
self.setMicaEffect(True)
|
||||
# 如果没有直接的云母效果方法,尝试使用亚克力效果作为替代
|
||||
elif hasattr(self, 'setAcrylicEffect'):
|
||||
self.setAcrylicEffect(True)
|
||||
# 如果都没有,使用窗口透明度作为最后的替代
|
||||
elif hasattr(self, 'setWindowOpacity'):
|
||||
self.setWindowOpacity(0.95)
|
||||
else:
|
||||
# 禁用效果,恢复为完全不透明
|
||||
if hasattr(self, 'setWindowOpacity'):
|
||||
self.setWindowOpacity(1.0)
|
||||
# 已删除云母效果相关代码
|
||||
# 保持窗口默认不透明状态
|
||||
|
||||
# 初始化UI
|
||||
self.init_ui()
|
||||
|
||||
Reference in New Issue
Block a user