pyqt实现 按钮呼吸背景

简介

呼吸背景效果是一种常见的UI设计元素,它可以使按钮在鼠标悬停时产生渐变颜色的效果,给人一种视觉上的呼吸感,在PyQt中,我们可以通过重写QWidget的paintEvent方法来实现这种效果。

pyqt实现 按钮呼吸背景
(图片来源网络,侵删)

实现步骤

1、导入所需库

2、创建自定义按钮类

3、重写paintEvent方法

4、设置按钮属性

5、测试呼吸背景效果

详细代码

导入所需库
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtCore import Qt, QTimer, QRect
from PyQt5.QtGui import QPainter, QBrush, QColor
import sys
class BreathingButton(QPushButton):
    def __init__(self, parent=None):
        super(BreathingButton, self).__init__(parent)
        self._timer = QTimer(self)
        self._timer.setInterval(100)
        self._timer.timeout.connect(self.update)
        self._timer.start()
        self._color1 = QColor(255, 0, 0)
        self._color2 = QColor(0, 255, 0)
        self._color3 = QColor(0, 0, 255)
        self._color4 = QColor(255, 255, 255)
        self._current_color = self._color1
        self._brush = QBrush(self._current_color)
        self.setGeometry(100, 100, 200, 60)
        self.setText("点击我")
        self.setStyleSheet("backgroundcolor: transparent;")
        self.show()
    def paintEvent(self, event):
        painter = QPainter(self)
        painter.setRenderHint(QPainter.Antialiasing)
        painter.setBrush(self._brush)
        painter.drawRect(event.rect())
        if self.isEnabled():
            if self.hasFocus():
                if self._current_color == self._color1:
                    self._current_color = self._color2
                else:
                    self._current_color = self._color1
            elif self._current_color == self._color1:
                self._current_color = self._color4
            else:
                self._current_color = self._color3
        painter.setBrush(QBrush(self._current_color))
        painter.drawRect(event.rect())
        painter.end()
        super(BreathingButton, self).paintEvent(event)
if __name__ == "__main__":
    app = QApplication(sys.argv)
    button = BreathingButton()
    sys.exit(app.exec_())

单元表格

序号 方法/属性 说明
1 __init__ 初始化自定义按钮,设置定时器和颜色
2 paintEvent 重写绘制事件,实现呼吸背景效果
3 setGeometry 设置按钮位置和大小
4 setText 设置按钮文本
5 setStyleSheet 设置按钮样式,使其透明

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/478770.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希的头像未希新媒体运营
上一篇 2024-04-15 13:18
下一篇 2024-04-15 13:20

相关推荐

  • 如何设计按钮以增强用户点击率?看这些网页按钮实例!

    按钮设计应采用醒目的颜色和形状,结合清晰的文案来吸引用户点击。一个明亮的红色圆形按钮上写着“立即获取优惠”,会有效促使用户进行操作。

    2024-09-02
    039
  • 按钮mvpview模式_按钮

    按钮MVPView模式是一种设计模式,它通过将按钮的视图和逻辑分离,使得代码更加清晰、易于维护。在这种模式下,按钮的视图由一个专门的类(MVPView)负责处理,而按钮的逻辑则由另一个类(MVPPresenter)负责实现。

    2024-06-16
    069
  • 按钮组件_按钮组件

    按钮组件是用户界面中常见的一个元素,它可以触发某种行为或动作,下面是关于按钮组件的详细信息:按钮类型 类型 描述 命令按钮 用于执行某个操作,如“保存”、“删除”等 提交按钮 用于提交表单数据,如“提交” 重置按钮 用于重置表单数据,如“重置” 图片按钮 使用图片作为按钮背景 链接按钮 看起来像链接的按钮,通常……

    2024-06-07
    059
  • PyQt制作虚拟键盘

    安装PyQt5确保已经安装了Python和pip,使用以下命令安装PyQt5:pip install PyQt5创建虚拟键盘窗口1、导入所需模块from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QGridLa……

    2024-04-15
    0234

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入