PyQt5 自定义开关按钮(2)

news2024/12/23 12:15:33

效果展示

在这里插入图片描述

代码展示

from PyQt5.QtCore import Qt, pyqtSignal, QTimer, QRectF, QRect
from PyQt5.QtGui import QFont, QColor, QPainter, QPainterPath
from PyQt5.QtWidgets import QWidget


class SwitchBtn(QWidget):
    clicked = pyqtSignal(bool)

    # 组件常量
    BORDER_WIDTH = 4
    COLOR_BORDER = (209, 207, 198)
    COLOR_SLIDER = (255, 255, 255)
    COLOR_TEXT = (255, 255, 255)
    COLOR_CLOSE = (112, 112, 112)
    COLOR_OPEN = (0, 77, 191)
    COLOR_ALPHA = 150  # 透明度(禁用时)
    SPEED = 0.008  # 每次移动整体宽度的 0.8%(单位时间根据定时器,默认1ms)

    TEXT_ON = 'ON'
    TEXT_OFF = 'OFF'
    FONT_FAMILY = '微软雅黑'
    FONT_SIZE = 9

    def __init__(self, parent=None):
        super().__init__(parent)
        # 开关状态,默认关闭
        self.__checked = False
        self.__enabled = True
        # 移动步值
        self.__step = self.width() * self.SPEED
        # 起始点
        self.__start = 0
        self.__end = 0
        # 颜色
        self.__color_border = QColor(*self.COLOR_BORDER)
        self.__color_slider = QColor(*self.COLOR_SLIDER)
        self.__color_back = QColor(*self.COLOR_CLOSE)
        self.__color_text = QColor(*self.COLOR_TEXT)
        # 滑块
        self.__timer_slider = QTimer()
        self.__timer_slider.setInterval(1)
        self.__timer_slider.timeout.connect(self.__to_slider)
        # 字体
        self.__font = QFont()
        self.__font.setFamily(self

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1039249.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode-简单题】501. 二叉搜索树中的众数

文章目录 题目方法一&#xff1a;暴力哈希方法二&#xff1a;利用二叉搜索树的特性&#xff08;递归双指针&#xff09; 题目 方法一&#xff1a;暴力哈希 这是针对于普通二叉树的解法 统计number出现次数 然后将次数最大的众数集 取出来 Map<Integer , Integer > map …

世界前沿技术发展报告2023《世界信息技术发展报告》(五)先进计算技术

&#xff08;五&#xff09;先进计算技术 1. 概述2. 超级计算机2.1 美国首台E级超级计算机Crusher上线试运行2.2 欧洲最强大的超级计算机落成2.3 美国英伟达与微软公司联合开发人工智能超级计算机 3. 新型计算技术3.1 中国北京航空航天大学提出“混合概率逻辑计算”机制3.2 奥地…

港联证券:绿柱成交量放大什么意思?

这是许多股民常常遇到的问题。股票的价格涨跌往往与它的成交量有着紧密的联络&#xff0c;而绿柱扩展也意味着股票的成交量在上升&#xff0c;这或许是功德&#xff0c;也或许是坏事。本文将从不同角度评论绿柱成交量扩展的意义。 首要&#xff0c;关于绿柱扩展的情况&#xf…

负载均衡器监控

什么是负载均衡器 负载均衡建立在现有网络结构之上&#xff0c;它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。其意思就是分摊到多个操作单元上进行执行&#xff0c;例如Web服务器、FTP服务器、企…

MySQL数据库入门到精通7--进阶篇( InnoDB引擎)

6. InnoDB引擎 6.1 逻辑存储结构 InnoDB的逻辑存储结构如下图所示: 1). 表空间 表空间是InnoDB存储引擎逻辑结构的最高层&#xff0c; 如果用户启用了参数 innodb_file_per_table(在 8.0版本中默认开启) &#xff0c;则每张表都会有一个表空间&#xff08;xxx.ibd&#xff0…

centos 6使用yum安装软件

1. 执行以下命令&#xff0c;查看当前操作系统 CentOS 版本。 cat /etc/centos-release返回结果如下图所示&#xff0c;则说明当前操作系统版本为 CentOS 6.9。 2. 执行以下命令&#xff0c;编辑 CentOS-Base.repo 和CentOS-Epel.repo文件。 vim /etc/yum.repos.d/CentOS-Bas…

三极管和MOS管抗静电?|深圳比创达EMC

抗静电为什么是三极管优于MOS&#xff1f;那么三极管和MOS管抗静电&#xff1f;接下来就跟着深圳比创达EMC小编一起来看下吧&#xff01; 首先要了解电子元件的特性&#xff0c;三极管是电流驱动元件&#xff0c;MOS管是电压驱动元件&#xff0c;为什么说MOS管用手触摸容易坏&a…

SpringAOP入门案例

package com.elf.spring.aop.aspectj; /*** author 45* version 1.0*/ public interface UsbInterface {public void work(); }package com.elf.spring.aop.aspectj; import org.springframework.stereotype.Component; /*** author 45* version 1.0*/ Component //把Phone对象…

如何快速提高沃尔玛、亚马逊产品的权重和销量,自养号测评的重要性!

据沃尔玛最新财报显示&#xff0c;其第二季度营业收入达到1616亿美元&#xff0c;同比增长5.74%&#xff1b;第二季度净利润约为79亿美元&#xff0c;同比增长53%。其中&#xff0c;沃尔玛在美国电商业务销售额同比增长24%。 其用户忠诚度也很较高&#xff0c;沃尔玛每月独立访…

Linux - Python安装

准备 openssl下载 python3下载 openssl安装目录&#xff1a;/usr/local/openssl python安装目录&#xff1a;/usr/local/python 将下载的文件上传至上面目录 部署 openssl安装 cd /usr/local/openssl tar -zxvf openssl-1.1.1w.tar.gz cd openssl-1.1.1w ./config --pref…

公网远程访问GeoServe Web管理界面【内网穿透】

文章目录 前言1.安装GeoServer2. windows 安装 cpolar3. 创建公网访问地址4. 公网访问Geo Servcer服务5. 固定公网HTTP地址 前言 GeoServer是OGC Web服务器规范的J2EE实现&#xff0c;利用GeoServer可以方便地发布地图数据&#xff0c;允许用户对要素数据进行更新、删除、插入…

蓝桥杯备赛-上学迟到

上学迟到 P5707 【深基2.例12】上学迟到 - 洛谷 |https://www.luogu.com.cn/problem/P5707 题目介绍 题目描述 学校和 yyy 的家之间的距离为 s 米&#xff0c;而 yyy 以v 米每分钟的速度匀速走向学校。 在上学的路上&#xff0c;yyy 还要额外花费 1010 分钟的时间进行垃圾分…

RHCE---时间/远程连接服务器

文章目录 目录 文章目录 前言 一.安装时间服务器软件 初始化系统 二.配置时间服务器的服务端 三.配置时间服务器的客户端 四.远程连接服务器 前言 Linux中的时间服务器是指NTP服务器&#xff0c;NTP是Network Time Protocol的缩写&#xff0c;即网络时间协议。NTP服务器可以…

工业互联网:数字化革命的引擎

工业互联网&#xff0c;作为数字化革命的引擎&#xff0c;正以前所未有的速度和力度改变着我们的世界。这一概念不再局限于企业内部的信息技术应用&#xff0c;而是将互联网、大数据、人工智能等技术深度融入到制造业、能源、交通、农业等各个领域&#xff0c;实现了设备、系统…

竞赛选题 基于深度学的图像修复 图像补全

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学的图像修复 图像补全 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-se…

项目管理中,产品经理如何合理分配任务?

大部分工作在软件行业中的分配是明确的&#xff0c;例如开发人员负责编写代码&#xff0c;产品经理负责编写文档&#xff0c;设计师负责绘制图形。然而&#xff0c;仍有一部分工作并不明确由谁负责。无论是产品经理还是开发人员都可以完成这些工作。 如果产品经理不擅长分配任…

【算法基础】数组和链表

目录 1 数组&#xff08;Array&#xff09; 1.1 定义和特点 1.2 基本操作 1.3 数组的时间复杂度 1.4 应用场景 2 链表&#xff08;Linked List&#xff09; 2.1 定义和特点&#xff1a; 2.1.1 单向链表&#xff08;Singly Linked List&#xff09; 2.1.2 双向链表&…

【iOS】引用计数与autorelease

文章目录 前言一、什么是自动引用计数二、内存管理/引用计数三、内存管理的思考方式四、release与autorelease五、赋值的引用计数 前言 最近在学习iOS内存管理之引用计数&#xff0c;特此撰写博客记录学习过程 一、什么是自动引用计数 自动引用计数&#xff08;ARC&#xff0…

在支付宝小程序上websocket实现mqtt协议连接服务器控制硬件

概述 支付宝小程序作对外开放&#xff0c;有许许多多的好玩的地方&#xff0c;那么本文就在支付宝小程序上websocket实现mqtt协议连接服务器控制智能硬件&#xff01;&#xff01; 详细 一、前言&#xff1b; 那么本系列连载的博文&#xff0c;都是围绕着 支付宝小程序如何实…

9月25日星期一,早安心语早安问候语早读

1、 人生的幸福&#xff0c;一半要争&#xff0c;一半要随&#xff0c;争&#xff0c;不是与他人&#xff0c;而是与困苦&#xff0c;随&#xff0c;不是随波逐流&#xff0c;而是知止而后安&#xff0c;争&#xff0c;人生少遗憾&#xff1b;随&#xff0c;知足者常乐&…