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 QCalendarWidget 设置鼠标双击事件

    下面是详细的讲解。 PyQt5 QCalendarWidget设置鼠标双击事件 在 PyQt5 中,QCalendarWidget 是一个非常常用的控件,它可以用来显示和选择日期,而且支持鼠标的单击和双击事件。下面我会详细说明如何设置 PyQt5 QCalendarWidget 的鼠标双击事件。 步骤一:创建 QCalendarWidget 首先,我们需要创…

    python 2023年5月11日
    00
  • PyQt5 QCalendarWidget – 检查它是否继承了给定的类

    介绍 PyQT5 QCalendarWidget 类及其继承关系: PyQT5 QCalendarWidget 是 PyQt5 中的一个小部件(widget),用于选择日期。它继承自 PyQT5 QWidget 类, QWidget 又继承自 PyQT5 QObject 类。因此,PyQT5 QCalendarWidget 具备 QWidget 和 QObj…

    python 2023年5月12日
    00
  • PyQt5 QSpinBox – 检查是否启用了平板电脑追踪功能

    PyQt5是一种用于Python的GUI编程框架,QSpinBox是其中一个常用的控件之一。在使用QSpinbox时,我们可能会遇到需要检查是否启用了平板电脑追踪功能的情况。以下是一份完整的使用攻略。 检查QSpinBox是否启用了平板电脑追踪功能 在PyQt5中,我们可以通过检查QApplication类中的属性来确定是否启用了平板电脑追踪功能。具体步骤如…

    python 2023年5月12日
    00
  • PyQt5 QDockWidget – 检查它是否有垂直标题栏

    PyQt5是一个Python GUI库,它可以帮助我们创建窗口和用户界面。QDockWidget是PyQt5中的一个控件,它可以帮助我们将窗口区域划分成可停靠和可浮动的部分。在该控件中,我们可以检查它是否有垂直标题栏,以下是完整使用攻略: 1. 安装PyQt5 如果还没有安装PyQt5库,可以使用以下命令进行安装: pip install PyQt5 2. …

    python 2023年5月12日
    00
  • PyQt5组合框 在关闭状态下被按下时的不同边框尺寸

    针对这个问题,我来给您详细讲解Python中PyQt5组合框在关闭状态下被按下时的不同边框尺寸的完整使用攻略。 1. 简介 PyQt5是一个基于Python的GUI编程库,提供了丰富的GUI组件和工具,可以用于快速开发桌面应用程序。其中,组合框(ComboBox)是PyQt5中常用的控件之一,可用于在不同选项之间进行选择。 由于PyQt5中组合框的样式表(S…

    python 2023年5月11日
    00
  • PyQt5 – 如何设置RadioButton的工具提示时间

    PyQt5是Python语言中的一种GUI库,常用于创建窗口应用程序和图形用户界面。其中的RadioButton(单选按钮)是常用的一种基本控件,可以让用户从多个选项中选择一项。 设置RadioButton的工具提示时间是一个很实用的功能,可以让用户在鼠标停留在该控件上一定时间后显示一段文本介绍。下面就来详细讲解如何在PyQt5中实现这个功能。 准备工作 在…

    python 2023年5月10日
    00
  • PyQt5 QCalendarWidget 设置鼠标移动事件

    下面我来给你详细讲解Python中PyQt5库中的QCalendarWidget组件设置鼠标移动事件的使用攻略。 1. PyQt5 QCalendarWidget组件简介 QCalendarWidget是PyQt5中的日历控件,它提供了一个可以查看和编辑日期的日历窗口。在实际开发中,我们可以将QCalendarWidget组件用于选取日期、设定提醒等场景。 …

    python 2023年5月11日
    00
  • PyQt5 – 如何制作半透明的标签

    下面是制作半透明标签的完整使用攻略: 1. 安装PyQt5和Qt Designer 在开始之前,需要先安装PyQt5和Qt Designer两个工具。可以使用pip安装PyQt5,命令如下: pip install PyQt5 安装Qt Designer可以在Qt官网下载并安装,也可以直接通过安装Anaconda(或者Miniconda)来获取,具体安装方法…

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