From 645f07b4d222eb62acc18743018df5f5b6858a43 Mon Sep 17 00:00:00 2001 From: KenanZhu <3471685733@qq.com> Date: Sat, 30 May 2026 21:42:18 +0800 Subject: [PATCH] =?UTF-8?q?refactor(gui):=20currentTextChanged=20=E2=86=92?= =?UTF-8?q?=20currentIndexChanged=EF=BC=8CResetQssButton=20=E2=86=92=20Res?= =?UTF-8?q?etThemeButton?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ThemeComboBox 改用 currentIndexChanged(int) 信号 - ResetQssButton 重命名为 ResetThemeButton(.ui/.py 同步) - 重置按钮行为改为恢复至原始主题并立即应用(saveAndApply) --- src/gui/ALSettingsWidget.py | 39 ++++++++++++++++-------- src/gui/resources/ui/ALSettingsWidget.ui | 2 +- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/src/gui/ALSettingsWidget.py b/src/gui/ALSettingsWidget.py index 2ce9db2..8b1c398 100644 --- a/src/gui/ALSettingsWidget.py +++ b/src/gui/ALSettingsWidget.py @@ -151,8 +151,8 @@ class ALSettingsWidget(QWidget, Ui_ALSettingsWidget): ): self.BrowseQssButton.clicked.connect(self.onImportThemeButtonClicked) - self.ThemeComboBox.currentTextChanged.connect(self.onThemeComboBoxChanged) - self.ResetQssButton.clicked.connect(self.onResetQssButtonClicked) + self.ThemeComboBox.currentIndexChanged.connect(self.onThemeComboBoxChanged) + self.ResetThemeButton.clicked.connect(self.onResetThemeButtonClicked) self.CancelButton.clicked.connect(self.onCancelButtonClicked) self.ApplyButton.clicked.connect(self.onApplyButtonClicked) self.ConfirmButton.clicked.connect(self.onConfirmButtonClicked) @@ -212,7 +212,7 @@ class ALSettingsWidget(QWidget, Ui_ALSettingsWidget): if idx >= 0: self.ThemeComboBox.setCurrentIndex(idx) self.updateThemeStatus() - self._updateThemeInfo() + self.updateThemeInfo() def updateThemeStatus( self @@ -224,7 +224,7 @@ class ALSettingsWidget(QWidget, Ui_ALSettingsWidget): else: self.QssStatusLabel.setText("当前使用 默认 主题。") - def _updateThemeInfo( + def updateThemeInfo( self ): @@ -240,7 +240,7 @@ class ALSettingsWidget(QWidget, Ui_ALSettingsWidget): else: self.ThemeInfoLabel.setText("") - def _syncRadioFromNeedTheme( + def syncRadioFromNeedTheme( self, name: str ): @@ -278,12 +278,12 @@ class ALSettingsWidget(QWidget, Ui_ALSettingsWidget): self.__cfg_mgr.set(CfgKey.GLOBAL.APPEARANCE.STYLE, style) self.__cfg_mgr.set(CfgKey.GLOBAL.APPEARANCE.CUSTOM_THEME, custom_theme) _applyCustomTheme(custom_theme, theme) - self._syncRadioFromNeedTheme(custom_theme) + self.syncRadioFromNeedTheme(custom_theme) theme, _, _ = self.collectSettings() _applyTheme(theme) self.setNavigationIcons() self.updateThemeStatus() - self._updateThemeInfo() + self.updateThemeInfo() self.__original_style = self.currentStyleKey() def maybeRestart( @@ -338,7 +338,7 @@ class ALSettingsWidget(QWidget, Ui_ALSettingsWidget): if idx >= 0: self.ThemeComboBox.setCurrentIndex(idx) self.updateThemeStatus() - self._updateThemeInfo() + self.updateThemeInfo() except Exception as e: QMessageBox.warning( self, @@ -348,17 +348,32 @@ class ALSettingsWidget(QWidget, Ui_ALSettingsWidget): @Slot() def onThemeComboBoxChanged( - self + self, + index: int ): - self._updateThemeInfo() + self.updateThemeInfo() @Slot() - def onResetQssButtonClicked( + def onResetThemeButtonClicked( self ): - self.ThemeComboBox.setCurrentIndex(0) + 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.saveAndApply() @Slot() def onCancelButtonClicked( diff --git a/src/gui/resources/ui/ALSettingsWidget.ui b/src/gui/resources/ui/ALSettingsWidget.ui index 21c5a8c..c52c318 100644 --- a/src/gui/resources/ui/ALSettingsWidget.ui +++ b/src/gui/resources/ui/ALSettingsWidget.ui @@ -350,7 +350,7 @@ - + 80