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

RadioButton控件当同时设置了setChecked(True)和setEnabled(False)后样式显示异常 #276

Closed qianye216 closed 1 year ago

qianye216 commented 1 year ago

RadioButton如果同时设置了setChecked(True)和setEnabled(False)后样式显示异常

image

复现代码:

import sys

from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout
from qfluentwidgets import RadioButton

class Demo(QWidget):

    def __init__(self):
        super().__init__()
        self.vBoxLayout = QVBoxLayout(self)
        self.button1 = RadioButton('Option 1', self)
        self.button2 = RadioButton('Option 2', self)
        self.button3 = RadioButton('Option 3', self)
        self.button1.setChecked(True)
        self.button1.setEnabled(False)
        self.vBoxLayout.addWidget(self.button1, 0, Qt.AlignCenter)
        self.vBoxLayout.addWidget(self.button2, 0, Qt.AlignCenter)
        self.vBoxLayout.addWidget(self.button3, 0, Qt.AlignCenter)
        self.resize(300, 150)
        self.setStyleSheet('Demo{background:white}')

if __name__ == '__main__':
    # enable dpi scale
    QApplication.setHighDpiScaleFactorRoundingPolicy(
        Qt.HighDpiScaleFactorRoundingPolicy.PassThrough)
    QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
    QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)

    app = QApplication(sys.argv)
    w = Demo()
    w.show()
    app.exec_()
zhiyiYo commented 1 year ago

可能是因为没有设置禁用样式导致的