zhiyiYo / PyQt-Fluent-Widgets

A fluent design widgets library based on C++ Qt/PyQt/PySide. Make Qt Great Again.
https://qfluentwidgets.com
GNU General Public License v3.0
5.61k stars 541 forks source link

[Bug]: 通过设置卡修改主题时修改不完全 #708

Closed wsyong111 closed 9 months ago

wsyong111 commented 9 months ago

What happened?

在使用ComboBoxSettingCard修改主题会出现修改到一半的情况 image

Operation System

Windows10 22H2

Python Version

Python 3.9.5 64Bit (Venv)

PyQt/PySide Version

PyQt6

PyQt/PySide-Fluent-Widgets Version

v1.4.5

How to Reproduce?

在通过ComboBoxSettingCard修改主题,会发现主题修改不完全,部分控件没有修改颜色或修改到一半

Minimum code

from PyQt6.QtWidgets import QApplication, QWidget
from qfluentwidgets import ComboBoxSettingCard, ExpandLayout, FluentIcon, SplitFluentWindow, qconfig

class Window(SplitFluentWindow):
    def __init__(self):
        super().__init__()

        setting = QWidget()
        setting.setContentsMargins(0, 15, 0, 0)
        setting.setObjectName("Settings")

        card = ComboBoxSettingCard(
            qconfig.themeMode,
            FluentIcon.GLOBE,
            "Theme",
            texts=[
                "Light","Dark","Auto"
            ],
            parent=setting
        )

        layout = ExpandLayout(setting)
        layout.addWidget(card)

        self.addSubInterface(setting, FluentIcon.SETTING, "Settings")

def main():
    app = QApplication([])

    win = Window()
    win.show()

    app.exec()

if __name__ == "__main__":
    main()
zhiyiYo commented 9 months ago

应该是云母主题色没有更新导致的,加上代码:

card.optionChanged.connect(lambda ci: setTheme(qconfig.get(ci)))
wsyong111 commented 9 months ago

应该是云母主题色没有更新导致的,加上代码:

card.optionChanged.connect(lambda ci: setTheme(qconfig.get(ci)))

好像没有这个属性啊