PyQt5 – 改变选中状态下被按下的单选按钮的颜色

使用PyQt5可以根据需要自定义单选按钮的选中状态的颜色。具体可以按照以下几个步骤进行:

  1. 引入必要的模块和库
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
  1. 新建单选按钮QRadioButton或其子类,如QRadioButtonWithTitle:
class QRadioButtonWithTitle(QRadioButton):
    def __init__(self, title, parent=None):
        super(QRadioButtonWithTitle, self).__init__(parent)
        self.title = title

    def paintEvent(self, event):
        painter = QPainter(self)
        option = QStyleOptionButton()
        self.initStyleOption(option)
        option.text = self.title
        painter.drawControl(QStyle.CE_RadioButton, option)
  1. 设置单选按钮的样式和选中状态的颜色,可以通过StyleSheet实现:
radio_button = QRadioButtonWithTitle('单选按钮')
radio_button.setStyleSheet("QRadioButton::indicator:checked {background-color: blue}")

其中,QRadioButton::indicator:checked指选中状态下的单选按钮,background-color: blue就是设置颜色为蓝色。

例如,下面的代码演示了如何创建一个窗口,其中有两个单选按钮,一个默认颜色为白色,一个选中后颜色为蓝色。

class MainWindow(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.initUI()

    def initUI(self):
        vbox = QVBoxLayout()

        radio_button_white = QRadioButton("默认颜色:白色")
        vbox.addWidget(radio_button_white)

        radio_button_blue = QRadioButtonWithTitle("选中后颜色:蓝色")
        radio_button_blue.setStyleSheet("QRadioButton::indicator:checked {background-color: blue}")
        vbox.addWidget(radio_button_blue)

        self.setLayout(vbox)
        self.setWindowTitle("单选按钮的颜色设置")
        self.resize(300, 100)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec())

执行上述代码后,即可看到新创建的窗口中的两个单选按钮。其中一个默认为白色,另一个选中后颜色为蓝色。

另外一个示例是更深入一步的自定义单选按钮,并将选中的单选按钮转换成文本标签。代码如下:

class QRadioButtonWithText(QRadioButton):
    def __init__(self, text, value, parent=None):
        super(QRadioButtonWithText, self).__init__(parent)
        self.setText(text)
        self.value = value
        self.toggled.connect(self.on_toggled)

    def on_toggled(self, checked):
        if checked:
            print("选中了 %s" % self.value)

class MainWindow(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.initUI()

    def initUI(self):
        vbox = QVBoxLayout()

        radio_button1 = QRadioButtonWithText("Apple", "apple")
        radio_button2 = QRadioButtonWithText("Banana", "banana")
        radio_button3 = QRadioButtonWithText("Cherry", "cherry")

        vbox.addWidget(radio_button1)
        vbox.addWidget(radio_button2)
        vbox.addWidget(radio_button3)

        self.setLayout(vbox)
        self.setWindowTitle("自定义单选按钮Demo")
        self.resize(300, 100)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    main_window = MainWindow()
    main_window.show()
    sys.exit(app.exec())

上述代码创建了一个自定义文本单选按钮,并在选中时打印出对应的值。

需要注意的是,由于涉及到一些特定的PyQt5的属性和方法,因此需要熟悉PyQt5相关的基础知识才能更好地理解和运用上述代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – 改变选中状态下被按下的单选按钮的颜色 - Python技术站

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

相关文章

  • PyQt5 – 勾选状态下被按下的单选按钮的背景图片

    PyQt5是Python语言的一个GUI库,它提供了丰富的组件和工具,可以方便地创建用户界面,其中单选按钮是常用的界面组件之一。在某些场景下,我们希望在单选按钮被勾选的同时,改变其背景图片,这个过程可以通过以下步骤实现。 步骤一:准备背景图片 首先需要准备需要的背景图片,可以通过以下方式添加: 首先在pyqt5项目目录下,创建一个images文件夹 将需要使…

    python 2023年5月10日
    00
  • PyQt5可滚动标签 – 检索工具提示文本

    我来为你详细讲解 Python 的 “PyQt5 可滚动标签 – 检索工具提示文本”的完整使用攻略。 前置知识 在学习 PyQT5 可滚动标签 – 检索工具提示文本之前,还需要掌握一些基础知识: Python 语言基础; PyQT5 的基本使用方法(如主窗口、布局管理器等); PyQt5 的信号和槽机制; Python 的正则表达式。 实现步骤 PyQt5 …

    python 2023年5月10日
    00
  • PyQt5 QListWidget–检查排序是否被启用

    首先,QListWidget 是 PyQt5 中常用的控件之一,它可以用来显示包含多个文本项的列表。另外,QListWidget 还提供了排序功能,可以使得列表中的文本项按照一定的顺序排列。接下来我会详细讲解如何使用 PyQt5 的 QListWidget 检查排序是否被启用。 一、检查排序是否被启用的用法 在 PyQt5 中,可以通过 QListWidge…

    python 2023年5月13日
    00
  • PyQt5 QSpinBox – 获取抓取手势

    PyQt5是一个基于Python的GUI(图形用户界面)框架,其中的QSpinBox是PyQt5提供的一个数字选择器控件,可以用于输入、编辑数值。PyQt5 QSpinBox可以通过抓取手势进行操作。 下面是QSpinBox获取抓取手势的完整使用攻略。 初始化QSpinBox 首先需要初始化一个QSpinBox控件并设置窗口大小。 import sys fr…

    python 2023年5月12日
    00
  • PyQt5 QCalendarWidget 删除内存引用

    下面将详细讲解Python的“PyQt5 QCalendarWidget删除内存引用”的完整使用攻略,主要分为以下几个步骤: 创建QCalendarWidget实例 从布局中删除QCalendarWidget 删除QCalendarWidget的引用 示例演示 创建QCalendarWidget实例 在创建QCalendarWidget实例之前,需要先导入P…

    python 2023年5月11日
    00
  • PyQt5 QLineEdit小工具

    下面我将为您详细讲解Python中PyQt5库中的QLineEdit小工具的完整使用攻略。 1. PyQt5 QLineEdit小工具简介 QLineEdit小工具是PyQt5库中的一个文本输入框控件,用于用户输入需要的文本。它的主要特点如下: 可以支持用户的键盘输入。 可以带有默认文本,当用户未输入时,显示默认文本。 可以设置最大输入长度,超过限制长度后,…

    python 2023年5月13日
    00
  • PyQt5 – 组合框被按下时的背景图片

    下面我将详细讲解 Python 的 PyQt5 组合框被按下时的背景图片的完整使用攻略。 PyQt5 是一种创建 GUI 应用程序的工具包,它是 Python 语言编写的。组合框是 PyQt5 中常用的控件之一,PyQt5 的组合框被按下时的背景图片的使用可以增强用户体验。 设置组合框被按下时的背景图片 在 PyQt5 中,我们可以使用 QComboBox …

    python 2023年5月10日
    00
  • PyQt5 – 设置复选框指标被按下时的皮肤

    下面我来详细讲解Python中PyQt5模块中设置复选框指标被按下时的皮肤的完整使用攻略。 1. PyQt5中复选框简介 在PyQt5中,复选框是用于选择性地启用或禁用选项的控件。复选框通常包含一个文本标签,并在文本旁边有一个指标。指标表示复选框的状态-选中或未选中。 2. 设置复选框指标被按下时的皮肤 PyQt5提供了一个QCheckBox类,用于创建复选…

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