百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

PyQt5的介绍和画圆形进度条的代码分析

haoteby 2025-02-14 23:21 5 浏览

1、PyQt5的介绍:

是作为一套Python模块实现的。

是一个运行在所有主流操作系统上的跨平台和多平台组件。

是一套绑定Qt5的应用程序框架,而Qt库是一套最有用的GUI库。

PyQt5是由Riverbank Computing开发的。


2.安装:

sudo pip3 install pyqt5

3.用PyQt5来制作一个动态的圆形进度条的效果图,如下:


4.代码分析:

4.1 第1步:

#---第1步---导出模块---
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import QApplication, QWidget,QLabel
from PyQt5 import *

4.2 第2步:

#---第2步---定义圆形进度条类的定义---
class CirBar(QWidget):
    #---第2-1步---初始化定义---
    def __init__(self):
        super(CirBar, self).__init__()
        # 去边框,去掉边框也就是会去掉右上角退出的“×”,好看,但是强制退出要报错,小bug,可以继续优化
        self.setWindowFlags(Qt.FramelessWindowHint)  
        self.setAttribute(Qt.WA_TranslucentBackground)  # 设置窗口背景透明

        self.persent = 0
        self.my_thread = MyThread()
        self.my_thread.my_signal.connect(self.GenUpdate)
        self.my_thread.start()
    #定义更新
    def GenUpdate(self, p):
        self.persent = p
    #定义绘画事件
    def paintEvent(self, event):
        #360°分成100等分
        rotateAngle = 360 * self.persent / 100
        # 绘制准备工作,启用反锯齿
        painter = QPainter(self)
        #启用反锯齿,如果本行注释,那么圆的外线有锯齿,不光滑。
        painter.setRenderHints(QtGui.QPainter.Antialiasing)

        #外圆底色是blue,注意100,100和内圆的96和96,说明外圆不是正圆,稍大一点,有露出外圆底色一点弧形蓝色
        painter.setBrush(QBrush(QColor("blue")))
        #250和250是圆点的坐标
        painter.drawEllipse(250, 250, 100, 100)  # 画外圆
 
        #内圆底色是黄色
        painter.setBrush(QBrush(QColor("yellow")))
        #250和250是圆点的坐标
        painter.drawEllipse(250, 250, 96, 96)  # 画内圆
        #角度渐变(QConicalGradient)
        gradient = QConicalGradient(50, 50, 91)
        #进度条的画笔颜色
        gradient.setColorAt(1, QColor("red"))
        self.pen = QPen()
        self.pen.setBrush(gradient)  # 设置画刷渐变效果
        self.pen.setWidth(8)
        self.pen.setCapStyle(Qt.RoundCap)
        painter.setPen(self.pen)
        #250和250是圆点的坐标
        painter.drawArc(QtCore.QRectF(250, 250, 98, 98), int((90 - 0) * 16), -int(rotateAngle * 16))  # 画圆环
 
        #中间画笔的颜色,显示动态百分数的颜色
        painter.setPen(QColor("green"))
        #画中间动态百分比的文字设置和250和250是圆点的坐标
        painter.drawText(QtCore.QRectF(250, 250, 98, 98), Qt.AlignCenter, "%d%%" % self.persent)  # 显示进度条当前进度
        self.update()

4.3 第3步:

#---第3步---创建线程
class MyThread(QThread):
    my_signal = pyqtSignal(int)
    p = 0
    #初始化线程
    def __init__(self):
        super(MyThread, self).__init__()
    #运行线程
    def run(self):
        while True:
            if self.p < 100:
                self.p += 1
                self.my_signal.emit(self.p)
                self.msleep(100)

4.4 第4步:

#---第4步---
if __name__ == '__main__':
    app = QApplication(sys.argv)

    CirBar = CirBar()
    CirBar.show()
    sys.exit(app.exec_())

#如果去边框后好看,但是没有窗口右上角的‘×’退出,强制退出,会报错,不用管它。
#The X11 connection broke (error 1). Did the X11 server die?

相关推荐

吴玮老湿手把手教你拍小溪

https://v.qq.com/x/page/b30253em9sc.html?pcsharecode=点击观看高清视频,吴玮老湿手把手教会。吴玮老湿手把手教你拍溪水,高清视频手把手教会。慢门拍...

三星将上线Windows 10版Quick Share 数据传输不再难

【CNMO新闻】iPhone与Mac之间联动的一大优势在于AirDrop,让苹果用户可以快速地将手机上的信息、文件等传输到电脑上,电脑传输到手机同理。但是现在,三星计划让自己的用户在Windows1...

当超低能耗建筑变身幼儿园,会和小朋友产生什么神奇反应?

随着超低能耗建筑的发展,超低能耗技术已经被应用于多种建筑的设计当中,今天我们要参观的这所幼儿园就是一所超低能耗幼儿园。通过之前的系列视频,相信大家已经了解到超低能耗技术就是节能技术,在节能的基础上又能...

周迅被曝离婚:为何她总是被伤害?

与高圣远结婚后,周迅极少谈论自己的婚姻。但就在近日,她出了大新闻。5月22日,有网友发现,高圣远常用的社交账号INS上,突然删光了与周迅的合照。过去,他的相片中,周迅至少占一半。现在,一个都没有了。全...

木马前世今生:上线方式发展及新型上线方式实现

0×00前言在讲文章主题之前,我们还是习惯性地聊(che)一(che)聊(dan)。远程控制木马大家都不陌生,尤其是早期接触黑客技术的人,应该可以发现早在2007-2009年,这段时间内,国内的“黑...

直流电机两端电压脉冲个数

直流有刷电机电枢电流波形[1]...

孩子开心、家长放心,这个超低能耗幼儿园有多神奇?

数九寒天,冷在三九寒冷冬日里小朋友的免疫力难免会有所下降容易生病这让很多家长感到困扰生病不仅会影响孩子的身体健康还会耽误孩子的上课进度接下来安小居给大家介绍一所神奇的幼儿园,不管是凛冽冬日,还是烈日炎...

【《报任安书》徐涛朗读】

《报任安书》是司马迁写给友人任安的一封回信,全文约2800多字。在回信里,司马迁以激愤的心情陈述了替李陵将军求情的前因后果以及遭遇腐刑后为完成《史记》所承受的多重压力。这是一封泣血的书信,学习这篇文章...

LOL大神玩家鬼才创作《防御塔的心声》

2019英雄联盟新赛季版本已经上线,去年《英雄联盟》进行了有史以来最大的改版,进行了符文重铸,今年改版程度虽然没有那么大,但一些设定上还是会让游戏的节奏产生一些新的变化,近日B站UP主“倒悬的橘子”创...

无线安全的高级利用:隔离网络里你不知道的Wi-Fi隐蔽传输通道

2018年4月,在荷兰阿姆斯特丹HackInTheBox安全会议上,我们分享了一个关于隔离网攻击技术的议题——GhostTunnel:CovertDataExfiltratio...

黑客主要术语?什么是木马?什么是肉鸡?

本节将对常见的一些黑客术语进行简单的介绍1.肉鸡所谓肉鸡是一种很形象的比喻,比喻那些可以随意被控制的电脑,对方可以是各种电脑包括但不限于个人电脑,服务器等,在某种情况黑客进攻时会用他们干扰敌人。对直接...

福建38岁巨婴,身负20万债款,逼父母偿还,自己却花2万元购耳机

在阅读此文前,为了方便您进行讨论和分享,麻烦您点击一下“关注”,可以给您带来不一样的参与感,感谢您的支持。...

【IT之家开箱】Hi MateBook D 16/14图赏:轻薄护眼屏,简约设计

距离618购物狂欢节还有一个多月时间,手机和PC厂商基本都会争取在5.1之前完成新品铺货。近期,主打大屏护眼与高效体验的HiMateBookD16和HiMateBookD...

ffmpeg入门篇-linux编译安装ffmpeg

为什么说在linux上编译安装ffmpeg最复杂?因为编译之前我们要安装很多扩展库,每个人的环境不同,要安装的编解码库或多或少都有些区别。linux下安装ffmpeg,我们以centos7...

万字解析Linux内核调试之动态追踪

文章介绍几种常用的内核动态追踪技术,对ftrace、perf及eBPF的使用方法进行案例说明。1、什么是动态追踪动态追踪技术,是通过探针机制来采集内核或者应用程序的运行信息,从而可以不用修改内...