📅  最后修改于: 2023-12-03 15:18:50.123000             🧑  作者: Mango
在 PyQt5 中,我们可以使用 QRadioButton 控件来创建单选框。这些单选框通常带有一个圆圈用于指示选中状态。在默认情况下,这些圆圈的颜色与系统主题的颜色相同。但是,很多时候我们需要自定义圆圈的颜色。本篇文章将向您展示如何在按下时设置皮肤未选中的 RadioButton 指示器。
Python 下载安装
PyCharm 下载安装
PyQt5 安装
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QVBoxLayout
self.radio_button = QRadioButton("RadioButton")
self.radio_button.toggled.connect(self.on_radio_button_toggle)
self.default_color = QColor(255, 255, 255, 255)
self.unchecked_color = QColor(200, 200, 200, 255)
def on_radio_button_toggle(self, checked):
if not checked:
self.radio_button.setStyleSheet("QRadioButton::indicator {background-color: %s;}" % self.unchecked_color.name())
else:
self.radio_button.setStyleSheet("QRadioButton::indicator {background-color: %s;}" % self.default_color.name())
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QVBoxLayout
class Window(QWidget):
def __init__(self):
super().__init__()
self.default_color = QColor(255, 255, 255, 255)
self.unchecked_color = QColor(200, 200, 200, 255)
self.initUI()
def initUI(self):
self.radio_button = QRadioButton("RadioButton")
self.radio_button.toggled.connect(self.on_radio_button_toggle)
layout = QVBoxLayout()
layout.addWidget(self.radio_button)
self.setLayout(layout)
self.setGeometry(100, 100, 300, 200)
self.show()
def on_radio_button_toggle(self, checked):
if not checked:
self.radio_button.setStyleSheet("QRadioButton::indicator {background-color: %s;}" % self.unchecked_color.name())
else:
self.radio_button.setStyleSheet("QRadioButton::indicator {background-color: %s;}" % self.default_color.name())
if __name__ == '__main__':
app = QApplication([])
window = Window()
app.exec_()
在按下单选框时,我们可以根据需要自定义皮肤未选中的 RadioButton 指示器。通过上述步骤,我们可以看到 QRectF 类和 QPainter 类的使用。总而言之,以上方案是在 PyQt5 中访问和使用 QRectF 和 QPainter 类的有效方法之一。