如何在PyQt GUI中为某个函数的执行设置进度条?

2024-05-23 19:49:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我设计了一个GUI,在单击一个按钮之后,我实现了一个名为librosa.effects.hpss()的函数,这需要花费大量的时间来执行。由于执行需要花费大量时间,我希望在GUI本身上使用进度条来查看该函数的执行(同时带有start和done指示)。我该怎么做?你知道吗

我尝试过这些实现https://www.themarketingtechnologist.co/progress-timer-in-python/,但它们都是针对for()循环实现的,我没有任何实现。你知道吗

这是我的函数调用代码。你知道吗

  def hpssop(self):
        self.file = "file.wav"
        self.y, self.sr = librosa.load(self.file)
        self.margin_harms = self.margin_har.value()
        self.margin_pers = self.margin_per.value()
        self.harmonic, self.percussive = librosa.effects.hpss(self.y,
                                                              margin=(self.margin_harms, self.margin_pers))
        librosa.output.write_wav("harmonic.wav", self.harmonic, self.sr)
        librosa.output.write_wav("percussive.wav", self.percussive, self.sr)

    def onseparateclick(self):
        self.hpss.clicked.connect(self.hpssop)

这是图形用户界面,但不是分离状态,我想要进度条

This is the GUI but instead of separating status I want progress bar


Tags: 函数进度条marginself时间guifile花费