Python进度条

from PyQt5.QtWidgets import QWidget, QProgressBar,QPushButton, QApplication
from PyQt5.QtCore import QBasicTimer,QCoreApplication
import sys

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.settings()

    def settings(self):
        self.progressbar = QProgressBar(self)
        self.progressbar.setGeometry(30, 40, 200, 25)
        self.progressbar.setValue(0)
        self.btn = QPushButton('开始', self)
        self.btn.move(40, 80)
        self.btn.clicked.connect(self.startorstop)
        self.timer = QBasicTimer()
        self.long = 0
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('进度条')
        self.show()

    def timerEvent(self,e):
        if self.long >= 100:
            self.timer.stop()
            self.btn.setText('完成')
            self.btn.clicked.connect(QCoreApplication.instance().quit)

        self.long += 1
        self.progressbar.setValue(self.long)

    def startorstop(self):
        if self.timer.isActive():
            self.timer.stop()
            self.btn.setText('开始')
        else:
            self.timer.start(100, self)
            self.btn.setText('停止')

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

这个进度条还是比较好玩的。
当然,也有点复杂。

首先我们创建一个水平的进度条。然后设置初始值为0。
接着就是按钮,与一个时钟。
然后创一个时钟设定的函数。如果总长度,就是进度条的完成度大于等于100,也就是进度条满了,那么就将按钮的名字改为结束。点了结束就正常退出。那一大串就是正常退出。

注意,这个函数有个参数e,大家可以打印一下。如果没有这个参数,就会报错。虽然这个是没用的参数,但是要设置一个形参的位置。

再来看看被按钮绑定的函数。self.timer.isActive()是检查时钟是否被激活,激活状态为真,否则为假。返回的就是True或False。
所以如果被激活,那么按钮名字叫开始,否则为停止。并给时钟100个信号源,这个越多,进度条的长度就越长,注意,这个越长是实际的长度越长,大家可以试一下。并不是进度条的长度。

好了,这是今天的Gui知识,如果大家喜欢,不妨花个五秒,加个关注,点个赞。如果大家有疑惑,可以在评论区询问,伙伴们也可以加我的QQ:3418772261。在QQ里,我可以提供答疑。那么下期再见了,拜拜!

你可能感兴趣的:(Python进度条)