PyQt5 – 未选中状态下被按下的单选按钮的背景图片

如何设置 PyQT5 单选按钮的未选中状态下的背景图片?

1.概述
Pyqt5 可以用 QSS 来实现单选按钮的样式互动。QSS 是一种 CSS 样式表语言的变体,可以设置 PyQt5 窗口上控件的外观。通过QSS,可以让单选按钮实现很多 CSS 中的特效。

2.设置方式
在PyQT5中,通过setStyleSheet()后定义QSS代码,可以设置控件的背景颜色、字体、边框等,其中也包含了控件的状态样式处理。

单选按钮(qRadioButton)有四种状态: 正常态、划过态、按下态、选中态;可以通过查找官方文档,得到其状态值。

可以通过以下代码实现单选按钮在未选中状态下的背景图片:

# 未选中状态下的背景图片
QRadioButton {
    background-image: url(:/radio_normal.png);
    border: none;
}

# 选中状态下的背景图片
QRadioButton:checked {
    background-image: url(:/radio_select.png);
    border: none;
}

# 鼠标移上去的状态下的背景图片
QRadioButton:hover {
    background-image: url(:/radio_hover.png)
}

# 没选中也没划过的状态下的背景图片
QRadioButton:unchecked:hover {
    background-image: url(:/radio_normal.png);
}

在上例中,选中状态下的背景图片是 radio_select.png,这个图片的路径是 PyQt5 工程根目录下。这里需要将图片引用链接到 PyQT5 窗口。

3.示例

下面是一个比较完整的例子:

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

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):
        b1 = QRadioButton('Button1',self)
        b1.move(15, 20)

        b2 = QRadioButton('Button2',self)
        b2.move(15, 50)

        b3 = QRadioButton('Button3',self)
        b3.move(15, 80)

        self.setGeometry(300, 300, 350, 250)
        self.setWindowTitle('QRadioButton')
        self.setStyleSheet("""
        QRadioButton {
            background-image: url(./unchecked_bg.png);
            border: none;
            width: 13px;
            height: 13px;
        }

        QRadioButton:checked {
            background-image: url(./checked_bg.png);
            border: none;
        }

        QRadioButton:hover {
            background-image: url(./unchecked_bg_hover.png);
        }

        QRadioButton:unchecked:hover {
            background-image: url(./unchecked_bg_hover.png);
        }
        """)
        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在这个例子中,我们创建了三个单选按钮,这三个按钮使用了 QRadioButton 控件。

使用 QSS,我们定义了这个窗口中单选按钮的样式:

QRadioButton {
    background-image: url(./unchecked_bg.png);
    border: none;
    width: 13px;
    height: 13px;
}

QRadioButton:checked {
    background-image: url(./checked_bg.png);
    border: none;
}

QRadioButton:hover {
    background-image: url(./unchecked_bg_hover.png);
}

QRadioButton:unchecked:hover {
    background-image: url(./unchecked_bg_hover.png);
}

这里,并没有一个默认的背景色,我们使用了一个 13x13 的图片来作为控件的背景。

这个例子我们自定义了按钮的一些状态,其中:

  • unchecked_bg.png 是未选中状态下的背景图片;
  • checked_bg.png 是选中状态下的背景图片;
  • unchecked_bg_hover.png 是未选中状态下鼠标悬停状态的背景图片。

这些图片可以自定义设计,实现自定义的单选按钮样式。

运行例子,单击不同的控件,单选按钮会切换背景,展现了不同的样式。可以试着更改及添加一些状态,来理解 QSS 样式表的处理机制。

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

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

相关文章

  • PyQt5 QDateEdit – 递增日期

    Python中的PyQt5库提供了QDateEdit控件来使用户能够编辑日期。本文将讲解如何使用PyQt5的QDateEdit控件来递增日期,包括两个示例说明。 安装PyQt5 在开始使用PyQt5控件之前,必须先安装PyQt5。可以通过pip来完成安装,具体步骤如下: pip install PyQt5 QDateEdit控件 QDateEdit控件是Py…

    python 2023年5月12日
    00
  • PyQt5 QSpinBox – 设置对象名称

    PyQt5是Python语言的GUI编程库,其中的QSpinBox是一种使用PyQt5开发图形界面的控件,用于设置一个带有增加和减少按钮的数字输入框。在PyQt5中,可以通过setObjectName()方法来设置QSpinBox对象的名称,以便在后续的代码中进行操作和引用。 下面,我们通过两个示例来详细讲解如何使用QSpinBox的setObjectNam…

    python 2023年5月12日
    00
  • PyQt5 QSpinBox – 为文本设置权重

    我来为您详细讲解 Python 中 PyQt5 中的 QSpinBox 的权重设置及使用方法。 什么是 QSpinBox? QSpinBox 是 PyQt 5 中的一种可选择整数值的控件,用户可以点击“增加”和“减少”按钮来改变它的值。它常用于需要用户输入整数值的场景中,比如用户填写年龄、数量等信息时,可以使用 QSpinBox 来输入更加易于处理的整数类型…

    python 2023年5月12日
    00
  • PyQt5 QCalendarWidget – 如果可能的话,访问每个孩子的长方形

    PyQt5是Python语言的一种GUI(图形用户界面)编程工具包,PyQt5中提供了QCalendarWidget,它是一个日历控件,可以用来选择日期。如果可能的话,我们可以访问QCalendarWidget的每个子控件的长方形。下面是使用攻略: 导入PyQt5模块 from PyQt5.QtWidgets import * from PyQt5.QtCo…

    python 2023年5月12日
    00
  • PyQt5 QSpinBox – 当它被按下时添加边框

    下面就是详细介绍Python中PyQt5库中的QSpinBox,以及如何在它被按下时添加边框。 QSpinBox QSpinBox是PyQt5中的一个小部件,它可以让用户在一定范围内选择整数值。用户可以使用键盘上的上/下箭头来增加/减少该值。 安装PyQt5 在使用QSpinBox之前,需要确保PyQt5已经正确安装。我们可以使用pip命令进行安装。 pip…

    python 2023年5月12日
    00
  • PyQt5 – 为按下的单选按钮设置皮肤

    PyQt5是使用Python语言开发的一款强大的GUI开发工具包,它支持多种平台,包括Windows、Mac OS和Linux等。其中单选按钮控件是很实用的控件之一,同时PyQt5提供了丰富的样式控制功能,可以为单选按钮设置各种样式,本文将为您详细讲解如何为按下的单选按钮设置皮肤。 1. 设置单选按钮样式 我们可以通过Qt的样式表来为单选按钮控件设置样式,具…

    python 2023年5月11日
    00
  • PyQt5 – 彩色复选框

    PyQt5是Python语言的一种GUI工具包,它能够方便地创建各种窗口和对话框。本篇文章将详细讲解如何使用PyQt5创建彩色复选框控件以及如何完整使用该控件。 PyQt5彩色复选框控件 彩色复选框控件是一种可选中或取消的控件,它可以在不同的状态下进行不同的颜色显示。在PyQt5中,彩色复选框控件通过QCheckBox类实现。它是QAbstractButto…

    python 2023年5月10日
    00
  • PyQt5 QSpinBox – 获取子代矩形

    下面是关于Python的PyQt5模块中QSpinBox控件的“获取子代矩形”功能的完整使用攻略: 1.认识QSpinBox QSpinBox是PyQt5模块中的一个数字输入框控件,它可以方便地实现数字的输入功能。除了数字外,还可以使用“前缀”、“后缀”等功能来进行定制化设置,并且支持QT的精度设置。参考代码如下: spinBox = QSpinBox() …

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