PyQt5自定义组件

本文介绍了如何在PyQt5中自定义组件,特别是Burning Widget的实现。Burning Widget通常在CD/DVD烧录软件中用于显示烧录进度,结合QSlider和自定义组件,当进度达到700(OVER_CAPACITY)时变为红色以表示烧毁状态。该组件由QHBoxLayout和QVBoxLayout布局管理器组成。
摘要由CSDN通过智能技术生成

自定义控件

PyQt5有丰富的组件,但是肯定满足不了所有开发者的所有需求, PyQt5只提供了基本的组件,像按钮,文本,滑块等,如果你还需要其 他的模块,应该尝试自己去自定义一些

自定义组件使用绘画工具创建,有两个基本方式:根据已有的创建或进;通过自己绘图创建

Burning widget

这个组件我们会在Nero,K3B,或者其他CD/DVD烧录软件中见到

例子中,我们使用了 QSlider 和一个自定义组件,由进度条控制。显示 的有物体(也就是CD/DVD)的总容量和剩余容量。进度条的范围是 1~750。如果值达到了700(OVER_CAPACITY),就显示为红色,代 表了烧毁了的意思

烧录组件在窗口的底部,这个组件是用 QHBoxLayout 和QVBoxLayout 组成的

代码实现:

from PyQt5.QtWidgets import (QWidget, QSlider, QApplication,
                             QHBoxLayout, QVBoxLayout)
from PyQt5.QtCore import QObject, Qt, pyqtSignal
from PyQt5.QtGui import QPainter, QFont, QColor, QPen
import sys


class Communicate(QObject):
    updateBW = pyqtSignal(int)


# 基于 QWidget 组件
class BurningWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 修改组件进度条的高度,默认的有点小
        self.setMinimumSize(1, 30)
        self.value = 75
        self.num = [75, 150, 225, 300, 375, 450, 525, 600, 675]

    def setValue(self, value)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值