PyQt5 – 如何在鼠标悬停时给选中的单选按钮设置皮肤

PyQt5是基于Python语言的GUI编程工具包。而要实现在鼠标悬停时给选中的单选按钮设置皮肤,可以按照如下步骤进行:

1. 安装PyQt5

在命令行中输入以下命令:

pip install PyQt5

2. 导入相关库

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QButtonGroup

3. 创建GUI界面

class App(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setGeometry(100, 100, 300, 200)
        self.setWindowTitle('选项按钮皮肤设置')

        self.btnGroup = QButtonGroup(self)
        self.btnGroup.buttonClicked[int].connect(self.on_btn_clicked)

        self.blueButton = QRadioButton('蓝色', self)
        self.btnGroup.addButton(self.blueButton, 1)
        self.blueButton.setGeometry(20, 50, 80, 30)

        self.redButton = QRadioButton('红色', self)
        self.btnGroup.addButton(self.redButton, 2)
        self.redButton.setGeometry(120, 50, 80, 30)

        self.yellowButton = QRadioButton('黄色', self)
        self.btnGroup.addButton(self.yellowButton, 3)
        self.yellowButton.setGeometry(220, 50, 80, 30)

        self.show()

该界面包含了三个单选按钮,分别是蓝色、红色和黄色。

4. 编写鼠标悬停事件

    def on_btn_clicked(self, id):
        if id == 1:
            self.blueButton.setStyleSheet("QRadioButton::indicator {background-color : blue;}")
        elif id == 2:
            self.redButton.setStyleSheet("QRadioButton::indicator {background-color : red;}")
        elif id == 3:
            self.yellowButton.setStyleSheet("QRadioButton::indicator {background-color : yellow;}")

    def enterEvent(self, event):
        btnId = self.btnGroup.checkedId()
        if btnId == 1:
            self.blueButton.setStyleSheet("QRadioButton::indicator {background-color : #a0c1f5;}")
        elif btnId == 2:
            self.redButton.setStyleSheet("QRadioButton::indicator {background-color : #ff8080;}")
        elif btnId == 3:
            self.yellowButton.setStyleSheet("QRadioButton::indicator {background-color : #fff68f;}")

在该函数中,首先会判断选中的单选按钮是哪个,从而设置对应的样式。其次,监测到鼠标悬停事件时,会获取当前选中的单选按钮的id,并设置对应的样式。

5. 运行程序

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_())

完整代码如下:

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QButtonGroup

class App(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setGeometry(100, 100, 300, 200)
        self.setWindowTitle('选项按钮皮肤设置')

        self.btnGroup = QButtonGroup(self)
        self.btnGroup.buttonClicked[int].connect(self.on_btn_clicked)

        self.blueButton = QRadioButton('蓝色', self)
        self.btnGroup.addButton(self.blueButton, 1)
        self.blueButton.setGeometry(20, 50, 80, 30)

        self.redButton = QRadioButton('红色', self)
        self.btnGroup.addButton(self.redButton, 2)
        self.redButton.setGeometry(120, 50, 80, 30)

        self.yellowButton = QRadioButton('黄色', self)
        self.btnGroup.addButton(self.yellowButton, 3)
        self.yellowButton.setGeometry(220, 50, 80, 30)

        self.show()

    def on_btn_clicked(self, id):
        if id == 1:
            self.blueButton.setStyleSheet("QRadioButton::indicator {background-color : blue;}")
        elif id == 2:
            self.redButton.setStyleSheet("QRadioButton::indicator {background-color : red;}")
        elif id == 3:
            self.yellowButton.setStyleSheet("QRadioButton::indicator {background-color : yellow;}")

    def enterEvent(self, event):
        btnId = self.btnGroup.checkedId()
        if btnId == 1:
            self.blueButton.setStyleSheet("QRadioButton::indicator {background-color : #a0c1f5;}")
        elif btnId == 2:
            self.redButton.setStyleSheet("QRadioButton::indicator {background-color : #ff8080;}")
        elif btnId == 3:
            self.yellowButton.setStyleSheet("QRadioButton::indicator {background-color : #fff68f;}")

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_())

在该程序中,我们实现了在鼠标悬停时给选中的单选按钮设置不同的皮肤。我们演示了三种皮肤:蓝色、红色和黄色。同时,我们通过继承QWidget类,并使用该类的enterEvent函数,实现了鼠标悬停事件的判断。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – 如何在鼠标悬停时给选中的单选按钮设置皮肤 - Python技术站

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

相关文章

  • PyQt5 QSpinBox – 获取字体的最小左方位

    PyQt5是Python语言中常用的GUI编程框架之一,QSpinBox控件是其中一个常用的部件,用于对数值进行输入和显示。在QSpinBox中,我们可以通过setFont方法来设置控件中文字的字体,通过font方法可以获取控件中文字的字体信息,包括最小左方位的值。下面是PyQt5 QSpinBox-获取字体的最小左方位的完整使用攻略。 获取QSpinBox…

    python 2023年5月12日
    00
  • PyQt5 QSpinBox – 设置对齐方式

    下面是关于 PyQt5 QSpinBox-设置对齐方式 的使用攻略。 1. 简介 QSpinBox 是一个可以让用户通过单击按钮或者手动输入来改变数值的控件。QSpinBox从QAbstractSpinBox继承而来,提供了一个数字输入框。 在PyQt5中,我们可以通过设置对齐方式来改变数字输入框中数字的位置。QSpinBox可以设置水平对齐和垂直对齐方式。…

    python 2023年5月12日
    00
  • PyQt5 QSpinBox – 从子区域获取翻译区域

    PyQt5是Python编程语言中的一种GUI(图形用户界面)工具包,Python使用PyQt5创建GUI程序可以轻松实现窗口、按钮、文本框、滑块等各种组件的添加和交互,而其中QSpinBox是PyQt5中的一个用于设置整数值的控件。本篇攻略将介绍如何使用QSpinBox控件来获取子区域的翻译区域。 步骤1:导入必要的模块 在使用QSpinBox控件之前,我…

    python 2023年5月12日
    00
  • PyQt5 – 如何阻止单选按钮被选中

    首先,我们需要先简单介绍一下PyQt5。 PyQt5是Python下的一个GUI库,它是对Qt库的Python封装。Qt是一个跨平台的GUI框架,具有强大的功能和良好的兼容性,而PyQt5则是Python下使用Qt库的最佳选择之一。在PyQt5中,我们可以轻松地构建各种UI界面,并与Python代码无缝连接。 关于如何阻止单选按钮被选中,我们可以采用以下步骤…

    python 2023年5月10日
    00
  • PyQt5 QSpinBox – 获取整个文本

    PyQt5是Python的一个GUI框架,提供了一系列的控件,包括 QSpinBox。QSpinBox 是一个输入数字的控件, 用户可以通过滚动或手动输入来改变数值。在很多情况下,我们需要获取 QSpinBox 控件中的整数,这就需要用到获取整个文本的方法。 PyQt5 QSpinBox-获取整个文本 要获取 QSpinBox 的整个文本,可以使用其 tex…

    python 2023年5月12日
    00
  • PyQt5 QCalendarWidget – 给QWidget的子程序设置背景图片

    PyQt5 是 Python 语言的一个 GUI 库,它提供了丰富的界面组件。其中 QCalendarWidget 是一个能够显示日历月份的组件。在实际的项目中,我们可能需要对 QCalendarWidget 的外观进行自定义,比如设置其背景图片。接下来将详细介绍如何给 QWidget 的子程序 QCalendarWidget 设置背景图片。 步骤一:导入 …

    python 2023年5月12日
    00
  • PyQt5 QCalendarWidget 设置自定义快捷键到特定月份

    PyQt5是基于Qt的Python GUI开发框架,而QCalendarWidget是PyQt5库中一个用于展示日历的部件。本文将详细讲解如何使用PyQt5 QCalendarWidget设置自定义快捷键到特定月份。 1. 安装PyQt5 首先,我们需要安装PyQt5库。可以使用pip工具安装,执行以下命令即可: pip install PyQt5 2. 创…

    python 2023年5月12日
    00
  • PyQt5标签 – 设置阴影的水平偏移量

    PyQt5是Python中一个强大的GUI(图形用户界面)开发框架,其中标签控件是常用的GUI元素之一。标签控件能够呈现文本或图像,同时可以设置阴影,以增强视觉体验。在该控件中设置阴影的水平偏移量可以调整阴影的位置和大小,实现更加个性化的效果。 基本语法 标签控件可以通过创建QLabel对象来实现。在进行阴影设置时,可以使用QLabel类中的setStyle…

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