📅  最后修改于: 2023-12-03 15:18:46.936000             🧑  作者: Mango
在 PyQt5 中,可以通过样式表(stylesheet)来设置控件的样式。在复选框中,未选中的指示器默认为一个简单的空白框,但是你可以设置一个自定义的皮肤作为指示器。
示例代码如下:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox
from PyQt5.QtGui import QPainter, QColor, QBrush
from PyQt5.QtCore import Qt
class StyledCheckBox(QCheckBox):
def __init__(self, parent=None):
super().__init__(parent)
def paintEvent(self, event):
# 调用父类的绘制方法
super().paintEvent(event)
# 创建 QPainter 对象
qp = QPainter(self)
# 获取复选框的几何形状
rect = self.geometry()
# 设置一个矩形,用于绘制未选中的指示器
x = rect.x() + rect.width() / 4
y = rect.y() + rect.height() / 4
w = rect.width() / 2
h = rect.height() / 2
rect = QRect(x, y, w, h)
# 绘制未选中的指示器
qp.setPen(Qt.NoPen)
qp.setBrush(QBrush(QColor(255, 255, 255)))
qp.drawRect(rect)
if __name__ == '__main__':
app = QApplication(sys.argv)
# 创建一个窗口
window = QWidget()
# 创建一个复选框
checkbox = StyledCheckBox('选项')
# 将复选框添加到窗口中
layout = QVBoxLayout()
layout.addWidget(checkbox)
window.setLayout(layout)
# 设置窗口的大小和标题
window.setGeometry(500, 300, 200, 100)
window.setWindowTitle('Styled CheckBox')
# 显示窗口
window.show()
sys.exit(app.exec_())
在这个示例中,我们创建了一个自定义的复选框类 StyledCheckBox
,重载了 paintEvent()
方法来绘制一个自定义的未选中的指示器。为了绘制一个简单的白色矩形,我们使用了 QPainter
类和 QBrush
、QPen
类来设置画刷和画笔。
此外,我们还可以通过样式表来设置其他的复选框属性,例如未选中时的文本颜色和大小,选中时的指示器样式等等。样式表的使用方法与 CSS 相似,可以使用选择器、属性和值来控制控件的样式。
Markdown 代码片段:
在 PyQt5 中,可以通过样式表(stylesheet)来设置控件的样式。在复选框中,未选中的指示器默认为一个简单的空白框,但是你可以设置一个自定义的皮肤作为指示器。
示例代码如下:
```python
# 示例代码
在这个示例中,我们创建了一个自定义的复选框类 StyledCheckBox
,重载了 paintEvent()
方法来绘制一个自定义的未选中的指示器。为了绘制一个简单的白色矩形,我们使用了 QPainter
类和 QBrush
、QPen
类来设置画刷和画笔。
此外,我们还可以通过样式表来设置其他的复选框属性,例如未选中时的文本颜色和大小,选中时的指示器样式等等。样式表的使用方法与 CSS 相似,可以使用选择器、属性和值来控制控件的样式。