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 QListWidget – 设置垂直滚动模式属性

    在PyQt5中,QListWidget提供了设置垂直滚动模式属性的方法,可以让我们设置滚动条的样式和行为。下面,我们就来看一下如何设置垂直滚动模式属性。 设置垂直滚动模式属性 QListWidget的垂直滚动模式属性可以通过setVerticalScrollMode()方法进行设置。该属性有三种取值: QAbstractItemView.ScrollPerP…

    python 2023年5月13日
    00
  • PyQt5 – 获取组合框中所选项目的文本

    PyQt5是Python语言下的GUI(图形用户界面)开发库,提供了大量的控件与函数库,可以帮助用户轻松地完成图形化用户界面的设计和开发。在PyQt5中,可以使用QComboBox控件来实现下拉列表。 获取组合框中所选项目的文本可以通过以下步骤实现: 1.在Python代码中导入PyQt5库中的QComboBox类。 from PyQt5.QtWidgets…

    python 2023年5月10日
    00
  • PyQt5 – QDoubleSpinBox

    PyQt5是Python的GUI编程框架,QDoubleSpinBox是其中的一个控件,可以提供一个带有加减按钮的浮点数输入框。 安装PyQt5 首先需要安装PyQt5,可以使用pip命令来安装: pip install PyQt5 创建QDoubleSpinBox 使用PyQt5创建一个QDoubleSpinBox非常简单。可以通过以下代码实现: from…

    python 2023年5月13日
    00
  • PyQt5 QSpinBox – 检查值是否在右边

    Python的PyQt5模块中提供了QSpinBox类,用于在用户界面中创建一个数字输入框。在使用QSpinBox控件时,可能需要检查用户输入的值是否在右边(即大于或等于指定的最小值)。本篇攻略将对如何使用PyQt5 QSpinBox检查值是否在右边进行详细讲解。 设置最小值 首先,需要使用setMinimum()函数来设置QSpinBox的最小值。例如,将…

    python 2023年5月12日
    00
  • PyQt5 最新内容

    PyQt5 最新内容使用攻略 PyQt5 是一个基于 Qt 库的 Python GUI 开发工具包,其最新版本包含众多更新内容,包括但不限于以下几点: Qt 5.15.0 版本的支持 引用 Python 3.9.0 版本 新的 QOpenGLWidget 对高 DPI 显示的支持提升 接下来,我们将详细讲解 PyQt5 最新内容的使用攻略。 安装 PyQt5…

    python 2023年5月12日
    00
  • PyQt5 QCommandLinkButton – 检查它是否是可检查的

    PyQt5是基于Python的GUI框架。QCommandLinkButton是PyQt5中的一个按钮控件,它可以用于用户界面中的标签式命令按钮。本篇文章将为您详细讲解如何使用PyQt5 QCommandLinkButton控件检查它是否是可检查的。 第一步,导入PyQt5包: from PyQt5.QtWidgets import * 第二步,创建PyQt…

    python 2023年5月12日
    00
  • PyQt5 QDateEdit – 获取时间

    下面详细讲解Python的“PyQt5 QDateEdit-获取时间”的完整使用攻略。 什么是PyQt5 QDateEdit? PyQt5是Python的一个GUI编程工具包,其中的QDateEdit类是PyQt5中的一个日期编辑控件类,用于对日期进行编辑和显示。 如何获取QDateEdit中的日期和时间? 要获取QDateEdit中的日期和时间,可以使用Q…

    python 2023年5月12日
    00
  • PyQt5组合框 用户输入的项目不存储在下拉菜单中

    下面我将详细讲解Python的PyQt5组合框中用户输入的项目不存储在下拉菜单中的使用攻略。 简介 在PyQt5中,组合框(QComboBox)被广泛用于实现用户选择单个值的功能。组合框中可以选择的值通常是静态的,即预先定义在下拉菜单中的。但是,有时候我们需要让用户输入一些自定义的值,在组合框的下拉菜单中并不包含这些值。本文将介绍如何在PyQt5中实现这样的…

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