PyQt5 – 未选中的复选框的背景颜色

以下是详细讲解python的“PyQt5 - 未选中的复选框的背景颜色”的完整使用攻略。

1. 简介

PyQt5是一种用Python编写的GUI(图形用户界面)工具箱,它包含了一系列用于构建桌面UI的类和方法。复选框也是PyQt5支持的常用控件之一,本文主要介绍如何修改未选中的复选框的背景颜色。

2. 修改未选中的复选框的背景颜色

2.1 方法一:使用stylesheet

PyQt5中,可以使用stylesheet样式表来自定义控件的外观,因此可以使用stylesheet来修改复选框的背景颜色。具体步骤如下:

  1. 在Qt Designer中创建一个复选框控件,并命名为checkBox。

  2. 在代码中引入PyQt5模块并实例化 QApplication 和 QWidget。

import sys
from PyQt5.QtWidgets import QApplication, QWidget
app = QApplication(sys.argv)
widget = QWidget()
widget.show()
  1. 在代码中获取checkBox控件并设置stylesheet样式表。
checkBox_style = 'QCheckBox::indicator::unchecked {\
                     background-color: red;\
                      }'
checkBox = widget.findChild(QCheckBox, 'checkBox')
checkBox.setStyleSheet(checkBox_style)
  1. 运行程序,即可看到未选中的复选框的背景颜色已经变为了红色。

2.2 方法二:自定义QProxyStyle

PyQt5中,可以通过继承QProxyStyle类并重载drawPrimitive方法,自定义复选框控件的绘制方式,从而实现修改复选框未选中时的背景颜色。具体步骤如下:

  1. 创建一个继承自QProxyStyle的类,命名为CustomStyle。并重载drawPrimitive方法,实现自定义的绘制方式。
from PyQt5.QtWidgets import QStyle, QProxyStyle, QStyleOption, QCheckBox
from PyQt5.QtGui import QPalette, QPainter
from PyQt5.QtCore import Qt

class CustomStyle(QProxyStyle):
    def drawPrimitive(self, element, option, painter, widget=None):
        if element == QStyle.PE_IndicatorCheckBox and not option.state & QStyle.State_On:
            palette = option.palette
            QtGui.QBrush(QtGui.QColor(255, 0, 0, 255))
            radius = 0.15 * min(option.rect.width(), option.rect.height())
            path = QtGui.QPainterPath()
            path.addRoundedRect(option.rect, radius, radius)
            painter.fillPath(path, brush)
        else:
            super().drawPrimitive(element, option, painter, widget)
  1. 在代码中实例化自定义的CustomStyle类,并设置为应用程序的样式。
app.setStyle(CustomStyle())
  1. 创建复选框控件,并设置。
checkBox = QCheckBox('CheckBox', widget)
checkBox.setGeometry(10, 10, 150, 30)
  1. 运行程序,即可看到未选中的复选框的背景颜色已经变为了红色。

3. 示例如下

3.1 方法一实例

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox

app = QApplication(sys.argv)

widget = QWidget()

checkBox_style = 'QCheckBox::indicator::unchecked {\
                     background-color: red;\
                      }'
checkBox = QCheckBox('CheckBox', widget)
checkBox.setObjectName('checkBox')
checkBox.setStyleSheet(checkBox_style)
checkBox.setGeometry(10, 10, 150, 30)

widget.show()

sys.exit(app.exec_())

3.2 方法二实例

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox
from PyQt5.QtGui import QPalette, QPainter
from PyQt5.QtCore import Qt

class CustomStyle(QProxyStyle):
    def drawPrimitive(self, element, option, painter, widget=None):
        if element == QStyle.PE_IndicatorCheckBox and not option.state & QStyle.State_On:
            palette = option.palette
            brush = QtGui.QBrush(QtGui.QColor(255, 0, 0, 255))
            radius = 0.15 * min(option.rect.width(), option.rect.height())
            path = QtGui.QPainterPath()
            path.addRoundedRect(option.rect, radius, radius)
            painter.fillPath(path, brush)
        else:
            super().drawPrimitive(element, option, painter, widget)

app = QApplication(sys.argv)

app.setStyle(CustomStyle())

widget = QWidget()
widget.setGeometry(300, 300, 250, 150)

checkBox = QCheckBox('CheckBox', widget)
checkBox.setGeometry(10, 10, 150, 30)

widget.show()

sys.exit(app.exec_())

以上就是完整的使用攻略,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – 未选中的复选框的背景颜色 - Python技术站

(0)
上一篇 2023年5月10日
下一篇 2023年5月10日

相关文章

  • PyQt5 QCalendarWidget 获取选择模式

    PyQt5是一个强大的GUI编程工具包,提供了丰富的控件,其中QCalendarWidget控件用于显示日期。本文将详细讲解如何使用PyQt5 QCalendarWidget控件获取选择模式。 获取选择模式 QCalendarWidget控件的选择模式分为三种:单选模式、范围选择模式和多选模式。获取当前选择模式非常简单,只需要使用QCalendarWidge…

    python 2023年5月12日
    00
  • PyQt5 QDial 获取包装属性

    下面将详细讲解Python的“PyQt5 QDial获取包装属性”的完整使用攻略。 什么是PyQt5 QDial获取包装属性 PyQt5是一种GUI框架,QDial则是PyQt5中的一个旋转式(也称为“圆盘式”)控件,可以用来选择一个数值,通常用于模拟仪器或音量控件。 在PyQt5中,用户可以包装QDial来实现一些常见的功能,如获取QDial的当前值,设置…

    python 2023年5月12日
    00
  • PyQt5 – 如何改变MainWindow的边框风格

    PyQt5是Python中强大的GUI框架之一,提供了许多定制UI的方法。其中,改变MainWindow的边框风格是开发过程中经常需要的一个功能。下面是一份PyQt5改变MainWindow边框风格的完整使用攻略: 1. 安装PyQt5 你可以在官方网站获取PyQt5的安装包,也可以在控制台执行以下命令: pip install pyqt5 2. 编写代码 …

    python 2023年5月10日
    00
  • PyQt5 – 单选按钮中内容的字体和大小

    下面是关于Python的PyQt5 – 单选按钮中内容的字体和大小的完整使用攻略: 1. 简介 单选按钮是常见的用户控件,常用于交互性质较强的应用中。在PyQt5中,可以通过设置样式表来实现单选按钮内容的字体和大小的修改。 2. 基本语法 单选按钮的字体和大小可以通过设置样式表的方式来修改,在样式表中通过设置font-family和font-size属性来控…

    python 2023年5月10日
    00
  • PyQt5 QColorDialog – 当前颜色改变的信号

    PyQt5是Python的一个GUI编程工具。QColorDialog是它中的一种颜色选择对话框。QColorDialog可以让用户选择颜色,同时能够监听当前颜色改变的信号。本篇攻略将详细介绍PyQt5 QColorDialog-当前颜色改变的信号的完整使用方法。 1. 引入包 使用PyQt5中的QColorDialog,首先需要在Python代码中引入Py…

    python 2023年5月12日
    00
  • PyQt5 QCalendarWidget 设置字体

    当使用 PyQt5 QCalendarWidget 组件时,经常需要设置日历中显示的字体。下面是具体的使用攻略。 设置整个日历的字体 可以通过 setFont() 方法设置整个日历的字体。 from PyQt5.QtWidgets import QApplication, QMainWindow, QCalendarWidget, QWidget, QPus…

    python 2023年5月12日
    00
  • PyQt5 QCalendarWidget 设置最小宽度

    下面我为您详细讲解Python中如何使用PyQt5 QCalendarWidget设置最小宽度: 1. 设置QCalendarWidget的最小宽度 我们可以通过以下代码来设置QCalendarWidget的最小宽度: from PyQt5.QtWidgets import QApplication, QMainWindow, QCalendarWidget…

    python 2023年5月11日
    00
  • PyQt5 QCalendarWidget 从父级映射坐标系

    PyQt5是Python语言下的一款强大的GUI图形界面库,而QCalendarWidget是PyQt5中的日历控件。本篇回答将对如何在PyQt5中使用QCalendarWidget控件的从父级映射坐标系进行详细阐述。 什么是从父级映射坐标系 从父级映射坐标系(Parent-relative coordinate system,简称 PRCS)指的是一个坐标…

    python 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部