From 1d9e41ab86963328dd12b89203c6e45855e9fe6f Mon Sep 17 00:00:00 2001 From: KenanZhu <3471685733@qq.com> Date: Sat, 30 May 2026 21:56:19 +0800 Subject: [PATCH] =?UTF-8?q?fix(gui):=20=E9=87=8D=E7=BD=AE=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E8=A7=A6=E5=8F=91=E9=BB=98=E8=AE=A4=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重置按钮始终切到"默认"(index 0),清除自定义 QSS - 调用 _clearCustomTheme 实际清除样式并应用原始色调模式 --- src/gui/ALSettingsWidget.py | 43 ++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/src/gui/ALSettingsWidget.py b/src/gui/ALSettingsWidget.py index 8b1c398..3b64e90 100644 --- a/src/gui/ALSettingsWidget.py +++ b/src/gui/ALSettingsWidget.py @@ -94,6 +94,18 @@ def _restartApp( QApplication.instance().quit() QProcess.startDetached(sys.executable, sys.argv) +def _themeToReadable( + theme: str +) -> str: + + if theme == "dark": + return "深色" + elif theme == "light": + return "浅色" + elif theme == "both": + return "所有" + else: + return "未知" class ALSettingsWidget(QWidget, Ui_ALSettingsWidget): @@ -235,8 +247,14 @@ class ALSettingsWidget(QWidget, Ui_ALSettingsWidget): t = self.__theme_cache.get(name) if t: author = t.get("author", "未知") + need_theme = t.get("need_theme", "both") brief = t.get("brief", "没有相关简介") - self.ThemeInfoLabel.setText(f"作者:{author}\n简介:{brief}") + self.ThemeInfoLabel.setText( + f"{name}\n" + f"适用于 {_themeToReadable(need_theme)} 主题\n" + f"作者:{author}\n" + f"{brief}" + ) else: self.ThemeInfoLabel.setText("") @@ -360,12 +378,7 @@ class ALSettingsWidget(QWidget, Ui_ALSettingsWidget): ): self.ThemeComboBox.blockSignals(True) - if self.__original_custom_theme: - idx = self.ThemeComboBox.findText(self.__original_custom_theme) - if idx >= 0: - self.ThemeComboBox.setCurrentIndex(idx) - else: - self.ThemeComboBox.setCurrentIndex(0) + self.ThemeComboBox.setCurrentIndex(0) self.ThemeComboBox.blockSignals(False) if self.__original_theme == "light": self.LightThemeRadio.setChecked(True) @@ -373,27 +386,13 @@ class ALSettingsWidget(QWidget, Ui_ALSettingsWidget): self.DarkThemeRadio.setChecked(True) else: self.SystemThemeRadio.setChecked(True) - self.saveAndApply() + self.updateThemeInfo() @Slot() def onCancelButtonClicked( self ): - self.ThemeComboBox.blockSignals(True) - if self.__original_custom_theme: - idx = self.ThemeComboBox.findText(self.__original_custom_theme) - if idx >= 0: - self.ThemeComboBox.setCurrentIndex(idx) - else: - self.ThemeComboBox.setCurrentIndex(0) - self.ThemeComboBox.blockSignals(False) - if self.__original_theme == "light": - self.LightThemeRadio.setChecked(True) - elif self.__original_theme == "dark": - self.DarkThemeRadio.setChecked(True) - else: - self.SystemThemeRadio.setChecked(True) self.close() @Slot()