如何创建进度条

时间:2021-04-09 15:08:01

标签: python python-3.x qml pyside2

如何在 QT Creator 中创建百分比进度条?我使用pafy库。在下载所需文件时,库将总文件大小和已成功上传到函数的大小发送到函数,该函数执行计算并发送对百分比变量的引用,我应该在“qml”中接收此值" 文件以便我将该值放入进度条中,但这不起作用,我不知道原因。

python 和 pyside2 使用 Pafy 库

这是开始下载和回调进度条的Python函数

class Worker(MainWindow, QObject):
    
    finished = Signal()

    def download(self, video, stream, path):
        video_streams = pafy.new(video).streams
        video_streams[stream].download(filepath=path, quiet=True, callback=self.progressbar)
        self.finished.emit()

    def progressbar(self, total, recvd, ratio, rate, eta):
        """
        progress Bar For Videos Download
        """
        value = int(recvd * 100 / total)
        self.progressBar.emit(value)

这是打开连接到qml文件的代码

    engine.rootContext().setContextProperty("backend", main)
    

这是“qml文件”中接收值形式python文件的代码

    Connections{
        target: backend

        function onThumb(url){
            videoImage = url

        }

        function onVideoStreams(itemsss){
            items.push(itemsss)
            comboBox.model = items

        }
        function onProgressBar(prec){
            progressbar_value = prec
            console.log("In JavaScript",prec)
            CircularProgressbar.value = progressbar_value
        }
    }

这是进度条和属性的代码它自己的“qml文件”

    property int progressbar_value: 0
    
    CircularProgressbar{
        id: circularProgressbar
        width: 250
        height: 250
        anchors.verticalCenter: parent.verticalCenter
        anchors.left: parent.left
        anchors.leftMargin: 20
        value: progressbar_value
     }

0 个答案:

没有答案