清風 发表于 2024-2-22 07:17:55

进度条调入问题?

本帖最后由 清風 于 2024-2-22 07:52 编辑

如题,CustomProgressBar.py单独运行是可以正常滚动的,
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QProgressBar, QLabel
from PyQt6.QtCore import QTimer, Qt

class CustomProgressBar(QProgressBar):
    def __init__(self, parent=None):
      super().__init__(parent)
      self.setStyleSheet(
            """
            QProgressBar {
                text-align: center;/* 将文本居中对齐 */
                color: white;/* 设置文本颜色为白色 */
                border: none;
                background-color: #909090;/* 设置背景色 */
                height: 20px;/* 设置进度条高度 */
            }
            QProgressBar::chunk {
                background-color: #00A3E0;/* 设置进度条颜色 */
            }
            """
      )
      self.setTextVisible(True)# 显示进度文本
      self.counter = 0

    def scrollToCenter(self):
      max_value = self.maximum()
      if max_value > 0:
            self.setValue(max_value)

    def startAnimation(self):
      self.timer = QTimer(self)
      self.timer.timeout.connect(self._animate)
      self.timer.start(100)

    def _animate(self):
      value = self.value() + 2
      if value > self.maximum():
            value = value % self.maximum()
      self.setValue(value)

class HuanYingWindow(QWidget):
    def __init__(self):
      super().__init__()
      self.initUI()

    def initUI(self):
      layout = QVBoxLayout(self)

      progressBar = CustomProgressBar()
      layout.addWidget(progressBar)
      progressBar.scrollToCenter()
      progressBar.startAnimation()

      self.setLayout(layout)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = HuanYingWindow()
    window.show()
    sys.exit(app.exec())   


但是经如下代码调用后:
# 设置滚动条初始值为0
      self.progressBar.setValue(0)
      # 调用滚动条的方法
      self.progressBar.scrollToCenter()
      self.progressBar.startAnimation()
      self.progressBar._animate()
      # 判断滚动条是否达到 100%
      print(progressBar.value())
      input('...')
      if self.progressBar.value() == 100:
            # 打开主窗口
            mainWindow = MainWindow()
            mainWindow.show()
            self.close()# 关闭当前窗口
      else:
            event.ignore()# 忽略关闭事件

就不会滚动了,一闪而过.....

请教各位大佬,这是什么原因?

FishC 发表于 2024-2-22 07:52:26

清風 发表于 2024-02-22 07:52
算了,我都迷糊了,我也不想调用了,拜托直接帮我把进 ...

好的,那我帮您将进度条代码直接写入程序中,请您尝试以下代码:import sys
from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QProgressBar, QLabel
from PyQt6.QtCore import QTimer

class CustomProgressBar(QProgressBar):
    def __init__(self, parent=None):
      super().__init__(parent)
      self.setStyleSheet(
            """
            QProgressBar {
                text-align: center;
                color: white;
                border: none;
                background-color: #909090;
                height: 20px;
            }
            QProgressBar::chunk {
                background-color: #00A3E0;
            }
            """
      )
      self.setTextVisible(True)
      self.counter = 0
   
    def scrollToCenter(self):
      max_value = self.maximum()
      if max_value > 0:
            self.setValue(max_value)
   
    def startAnimation(self):
      self.timer = QTimer(self)
      self.timer.timeout.connect(self._animate)
      self.timer.start(100)
   
    def _animate(self):
      value = self.value() + 2
      if value > self.maximum():
            value = value % self.maximum()
      self.setValue(value)

class HuanYingWindow(QWidget):
    def __init__(self):
      super().__init__()
      self.initUI()
   
    def initUI(self):
      layout = QVBoxLayout(self)
      progressBar = CustomProgressBar()
      layout.addWidget(progressBar)
      progressBar.scrollToCenter()
      progressBar.startAnimation()
      self.setLayout(layout)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = HuanYingWindow()
    window.show()
    sys.exit(app.exec())请将此代码粘贴到您的程序中,并运行查看结果。如果有任何问题,请随时告诉我。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

清風 发表于 2024-2-22 07:52:14

FishC 发表于 2024-2-22 07:49
非常抱歉再次给您带来了困扰。确保您已经安装了正确的PyQt版本,并尝试以下修改后的代码:from PyQt6.Q ...

算了,我都迷糊了,我也不想调用了,拜托直接帮我把进度条代码写进去程序中吧。。。

FishC 发表于 2024-2-22 07:49:26

清風 发表于 2024-02-22 07:49
还是报错

from PyQt6.QtGui import QPropertyAnima ...

非常抱歉再次给您带来了困扰。确保您已经安装了正确的PyQt版本,并尝试以下修改后的代码:from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QProgressBar, QLabelfrom PyQt6.QtCore import QTimer, QPropertyAnimationclass CustomProgressBar(QProgressBar):    def __init__(self, parent=None):      super().__init__(parent)      self.setStyleSheet(            """            QProgressBar {                text-align: center;                color: white;                border: none;                background-color: #909090;                height: 20px;            }            QProgressBar::chunk {                background-color: #00A3E0;            }            """      )      self.setTextVisible(True)      self.counter = 0    def scrollToCenter(self):      max_value = self.maximum()      if max_value > 0:            self.setValue(max_value)    def startAnimation(self):      animation = QPropertyAnimation(self, b"value")      animation.setDuration(3000)      animation.setStartValue(0)      animation.setEndValue(self.maximum())      animation.start()      self.setGraphicsEffect(animation)class HuanYingWindow(QWidget):    def __init__(self):      super().__init__()      self.initUI()    def initUI(self):      layout = QVBoxLayout(self)      progressBar = CustomProgressBar()      layout.addWidget(progressBar)      progressBar.scrollToCenter()      progressBar.startAnimation()      self.setLayout(layout)if __name__ == "__main__":    app = QApplication([])    window = HuanYingWindow()    window.show()    app.exec()请再次尝试运行代码,看能否正常工作。如果问题仍然存在,请检查您的PyQt安装是否正确。如果仍然有问题,请告诉我您使用的是哪个版本的PyQt,并提供完整的错误信息,以便我能够更好地帮助您。谢谢!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

清風 发表于 2024-2-22 07:49:14

FishC 发表于 2024-2-22 07:46
非常抱歉,请接受我由衷的歉意。在上述代码中,`QAbstractAnimation`应该替换为`QAnimationGroup`以解 ...

还是报错

from PyQt6.QtGui import QPropertyAnimation
ImportError: cannot import name 'QPropertyAnimation' from 'PyQt6.QtGui' (D:\Python\Lib\site-packages\PyQt6\QtGui.pyd)

FishC 发表于 2024-2-22 07:46:27

清風 发表于 2024-02-22 07:46
这次直接报错:

animation.start(QAbstractAnimat ...

非常抱歉,请接受我由衷的歉意。在上述代码中,`QAbstractAnimation`应该替换为`QAnimationGroup`以解决报错问题,并使用以下方式导入所需的类:from PyQt6.QtCore import QPropertyAnimation, QSequentialAnimationGroup请根据下面的修改后代码示例重新运行程序:from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QProgressBar, QLabel
from PyQt6.QtCore import QTimer
from PyQt6.QtGui import QPropertyAnimation

class CustomProgressBar(QProgressBar):
    def __init__(self, parent=None):
      super().__init__(parent)
      self.setStyleSheet(
            """
            QProgressBar {
                text-align: center;
                color: white;
                border: none;
                background-color: #909090;
                height: 20px;
            }
            QProgressBar::chunk {
                background-color: #00A3E0;
            }
            """
      )
      self.setTextVisible(True)
      self.counter = 0

    def scrollToCenter(self):
      max_value = self.maximum()
      if max_value > 0:
            self.setValue(max_value)

    def startAnimation(self):
      animation = QPropertyAnimation(self, b"value")
      animation.setDuration(3000)
      animation.setStartValue(0)
      animation.setEndValue(self.maximum())
      animation.start(QPropertyAnimation.DeletionPolicy.DestroyWhenStopped)
      self.setGraphicsEffect(animation)

class HuanYingWindow(QWidget):
    def __init__(self):
      super().__init__()
      self.initUI()

    def initUI(self):
      layout = QVBoxLayout(self)
      progressBar = CustomProgressBar()
      layout.addWidget(progressBar)
      progressBar.scrollToCenter()
      progressBar.startAnimation()
      self.setLayout(layout)

if __name__ == "__main__":
    app = QApplication([])
    window = HuanYingWindow()
    window.show()
    app.exec()请您再次尝试运行代码,看能否正常滚动。如果还有其他问题,请随时提问。谢谢!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

清風 发表于 2024-2-22 07:46:16

FishC 发表于 2024-2-22 07:44
非常抱歉再次给您带来困惑。我重新检查了代码,发现了问题所在。

在`CustomProgressBar`类中的`star ...

这次直接报错:

animation.start(QAbstractAnimation.DeletionPolicy.DestroyWhenStopped)
                  ^^^^^^^^^^^^^^^^^^
NameError: name 'QAbstractAnimation' is not defined

FishC 发表于 2024-2-22 07:44:57

清風 发表于 2024-02-22 07:44
哈哈,这次QPropertyAnimation.py单独运行都没有滚动 ...

非常抱歉再次给您带来困惑。我重新检查了代码,发现了问题所在。

在`CustomProgressBar`类中的`startAnimation`方法中,我们需要将动画对象(`QPropertyAnimation`)添加到进度条对象上,以便启动动画效果。修改后的代码示例如下:

def startAnimation(self):
    animation = QPropertyAnimation(self, b"value")
    animation.setDuration(3000)
    animation.setStartValue(0)
    animation.setEndValue(self.maximum())
    animation.start(QAbstractAnimation.DeletionPolicy.DestroyWhenStopped)
    self.setGraphicsEffect(animation)

在上述代码中,我们使用 `self.setGraphicsEffect(animation)` 将动画对象设置为进度条的图形效果,`QPropertyAnimation` 会根据指定的起始值和结束值,在指定的时间内渐变地改变进度条的值。

请尝试运行这个修改后的代码,看是否能够正确滚动。如果仍然有问题,请提供更多详细信息,让我更好地理解您遇到的困难。非常抱歉之前的错误回答给您带来的困惑和不便。感谢您的耐心。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

清風 发表于 2024-2-22 07:44:49

FishC 发表于 2024-2-22 07:43
非常抱歉,之前的回答中确实有问题。下面是修改后的代码示例:




哈哈,这次QPropertyAnimation.py单独运行都没有滚动动作了!!

FishC 发表于 2024-2-22 07:43:19

清風 发表于 2024-02-22 07:43
不行

QPropertyAnimation.py单独运行有滚动动作,
...

非常抱歉,之前的回答中确实有问题。下面是修改后的代码示例:

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QProgressBar
from PyQt6.QtCore import QTimer, QPropertyAnimation

class CustomProgressBar(QProgressBar):
    def __init__(self, parent=None):
      super().__init__(parent)
      self.setStyleSheet(
            """
            QProgressBar {
                text-align: center;
                color: white;
                border: none;
                background-color: #909090;
                height: 20px;
            }
            QProgressBar::chunk {
                background-color: #00A3E0;
            }
            """
      )
      self.setTextVisible(True)
      self.counter = 0

    def scrollToCenter(self):
      max_value = self.maximum()
      if max_value > 0:
            self.setValue(max_value)

    def startAnimation(self):
      animation = QPropertyAnimation(self, b"value")
      animation.setDuration(3000)
      animation.setStartValue(0)
      animation.setEndValue(self.maximum())
      animation.start()

class HuanYingWindow(QWidget):
    def __init__(self):
      super().__init__()
      self.initUI()

    def initUI(self):
      layout = QVBoxLayout(self)
      progressBar = CustomProgressBar()
      layout.addWidget(progressBar)
      progressBar.scrollToCenter()
      progressBar.startAnimation()
      self.setLayout(layout)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = HuanYingWindow()
    window.show()
    sys.exit(app.exec())

这里使用了`QPropertyAnimation`来控制进度条的动画效果。在`startAnimation`方法中创建一个`QPropertyAnimation`对象,指定了起始值和结束值,并设置了动画的持续时间。然后调用`start`方法开始动画效果。

请尝试运行这个修改后的代码,看是否能正常滚动。如果仍然有问题,请提供更多详细信息,让我们更好地理解您遇到的困难。为之前的回答失误给您带来的不便再次道歉。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

清風 发表于 2024-2-22 07:43:07

FishC 发表于 2024-2-22 07:40
非常抱歉,以下是修改后的代码示例(注意Python格式):




不行

QPropertyAnimation.py单独运行有滚动动作,

但调用后仍然没有滚动动作。(好像初始值就是100)

FishC 发表于 2024-2-22 07:40:39

清風 发表于 2024-02-22 07:40
不行,

QPropertyAnimation.py单独运行有滚动动作 ...

非常抱歉,以下是修改后的代码示例(注意Python格式):

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QProgressBar
from PyQt6.QtCore import QTimer

class CustomProgressBar(QProgressBar):
    def __init__(self, parent=None):
      super().__init__(parent)
      self.setStyleSheet(
            """
            QProgressBar {
                text-align: center;
                color: white;
                border: none;
                background-color: #909090;
                height: 20px;
            }
            QProgressBar::chunk {
                background-color: #00A3E0;
            }
            """
      )
      self.setTextVisible(True)
      self.counter = 0

    def scrollToCenter(self):
      max_value = self.maximum()
      if max_value > 0:
            self.setValue(max_value)

    def startAnimation(self):
      self.timer = QTimer(self)
      self.timer.timeout.connect(self._animate)
      self.timer.start(100)

    def _animate(self):
      value = self.value() + 2
      if value > self.maximum():
            value = value % self.maximum()
      self.setValue(value)


class HuanYingWindow(QWidget):
    def __init__(self):
      super().__init__()
      self.initUI()

    def initUI(self):
      layout = QVBoxLayout(self)
      progressBar = CustomProgressBar()
      layout.addWidget(progressBar)
      progressBar.scrollToCenter()
      progressBar.startAnimation()
      self.setLayout(layout)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = HuanYingWindow()
    window.show()
    sys.exit(app.exec())

请尝试运行修正后的代码,看是否能够正常滚动。如果仍然有问题,请提供更多详细的信息,让我们更好地理解您遇到的困难。为之前的回答失误给您带来的不便再次道歉。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

清風 发表于 2024-2-22 07:40:25

FishC 发表于 2024-2-22 07:38
非常抱歉,以下是修改后的代码示例(注意Python格式):




不行,

QPropertyAnimation.py单独运行有滚动动作,

但调用后仍然没有滚动动作。


回复请注意python格式

FishC 发表于 2024-2-22 07:38:32

清風 发表于 2024-02-22 07:38
回复请注意python格式

非常抱歉,以下是修改后的代码示例(注意Python格式):

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QProgressBar
from PyQt6.QtCore import QPropertyAnimation, Qt

class CustomProgressBar(QProgressBar):
    def __init__(self, parent=None):
      super().__init__(parent)
      self.setStyleSheet(
            """
            QProgressBar {
                text-align: center;
                color: white;
                border: none;
                background-color: #909090;
                height: 20px;
            }
            QProgressBar::chunk {
                background-color: #00A3E0;
            }
            """
      )
      self.setTextVisible(True)
      self.animation = None# 添加animation成员变量

    def scrollToCenter(self):
      self.setValue(0)

    def startAnimation(self):
      self.animation = QPropertyAnimation(self, b"value")# 创建QPropertyAnimation对象
      self.animation.setStartValue(0)
      self.animation.setEndValue(100)
      self.animation.setDuration(2000)
      self.animation.setLoopCount(-1)
      self.animation.start()

class HuanYingWindow(QWidget):
    def __init__(self):
      super().__init__()
      self.initUI()

    def initUI(self):
      layout = QVBoxLayout(self)
      progressBar = CustomProgressBar()
      layout.addWidget(progressBar)
      progressBar.scrollToCenter()
      progressBar.startAnimation()
      self.setLayout(layout)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = HuanYingWindow()
    window.show()
    sys.exit(app.exec())

请尝试运行修正后的代码,看是否能够正常滚动。再次为之前的回答失误给您带来的不便道歉。如果仍然有问题,请提供更多详细的信息,让我们更好地理解您遇到的困难。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

清風 发表于 2024-2-22 07:38:13

FishC 发表于 2024-2-22 07:37
非常抱歉给您带来的困扰。经过进一步的调查,发现问题出在对`QPropertyAnimation`对象的生命周期管理上 ...

回复请注意python格式

FishC 发表于 2024-2-22 07:37:36

清風 发表于 2024-02-22 07:37
QPropertyAnimation.py单独运行有滚动动作了,

但 ...

非常抱歉给您带来的困扰。经过进一步的调查,发现问题出在对`QPropertyAnimation`对象的生命周期管理上。在代码中,我们没有将`QPropertyAnimation`对象作为成员变量保存在`CustomProgressBar`类中,导致其在函数执行完毕后被销毁,进而导致动画无法正常播放。以下是修改后的代码示例:import sysfrom PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QProgressBarfrom PyQt6.QtCore import QPropertyAnimation, Qt, QSequentialAnimationGroup, QTimerclass CustomProgressBar(QProgressBar):    def __init__(self, parent=None):      super().__init__(parent)      self.setStyleSheet(            """            QProgressBar {                text-align: center;                color: white;                border: none;                background-color: #909090;                height: 20px;            }            QProgressBar::chunk {                background-color: #00A3E0;            }            """      )      self.setTextVisible(True)      self.animation = None# 添加animation成员变量      def scrollToCenter(self):      self.setValue(0)      def startAnimation(self):      self.animation = QPropertyAnimation(self, b"value")# 创建QPropertyAnimation对象      self.animation.setStartValue(0)      self.animation.setEndValue(100)      self.animation.setDuration(2000)      self.animation.setLoopCount(-1)      self.animation.start()class HuanYingWindow(QWidget):    def __init__(self):      super().__init__()      self.initUI()      def initUI(self):      layout = QVBoxLayout(self)      progressBar = CustomProgressBar()      layout.addWidget(progressBar)      progressBar.scrollToCenter()      progressBar.startAnimation()      self.setLayout(layout)if __name__ == "__main__":    app = QApplication(sys.argv)    window = HuanYingWindow()    window.show()    sys.exit(app.exec())在修正后的代码中,我们将`QPropertyAnimation`对象作为成员变量保存在`CustomProgressBar`类中,保证其在函数执行完毕后不被销毁。同时,我们使用`setStartValue()`、`setEndValue()`和`setDuration()`方法来设置动画的起始值、结束值和持续时间。通过调用`start()`方法启动动画,并且将循环次数设置为-1,使得动画可以无限循环播放。请尝试运行修正后的代码,看是否能够正常滚动。再次为之前的回答失误给您带来的不便道歉。如果仍然有问题,请提供更多详细的信息,让我们更好地理解您遇到的困难。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

清風 发表于 2024-2-22 07:37:17

FishC 发表于 2024-2-22 07:35
非常抱歉给您带来困惑。实际上,在PyQt中使用`QPropertyAnimation`对`QProgressBar`进行动画处理是行不 ...

QPropertyAnimation.py单独运行有滚动动作了,

但是调用后又没动作了。。。。


我们好像又回到了问题的起点...

FishC 发表于 2024-2-22 07:35:17

清風 发表于 2024-02-22 07:35
不行,首先QPropertyAnimation.py单独运行就没有滚动 ...

非常抱歉给您带来困惑。实际上,在PyQt中使用`QPropertyAnimation`对`QProgressBar`进行动画处理是行不通的。在此向您道歉。

要实现进度条的滚动效果,可以使用PyQt提供的`QTimer`定时器结合`setValue()`方法来更新进度条的值。以下是修改后的代码示例:

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QProgressBar
from PyQt6.QtCore import QTimer

class CustomProgressBar(QProgressBar):
    def __init__(self, parent=None):
      super().__init__(parent)
      self.setStyleSheet(
            """
            QProgressBar {
                text-align: center;
                color: white;
                border: none;
                background-color: #909090;
                height: 20px;
            }
            QProgressBar::chunk {
                background-color: #00A3E0;
            }
            """
      )
      self.setTextVisible(True)
   
    def scrollToCenter(self):
      self.setValue(0)
   
    def startAnimation(self):
      self.timer = QTimer(self)
      self.timer.timeout.connect(self._animate)
      self.timer.start(100)
   
    def _animate(self):
      value = self.value() + 1
      if value > self.maximum():
            value = value % (self.maximum() + 1)
      self.setValue(value)

class HuanYingWindow(QWidget):
    def __init__(self):
      super().__init__()
      self.initUI()
   
    def initUI(self):
      layout = QVBoxLayout(self)
      progressBar = CustomProgressBar()
      layout.addWidget(progressBar)
      progressBar.scrollToCenter()
      progressBar.startAnimation()
      self.setLayout(layout)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = HuanYingWindow()
    window.show()
    sys.exit(app.exec())

在修正后的代码中,我们使用`QTimer`定时器每隔一段时间触发一次`_animate`方法,通过递增进度条的值来实现滚动效果。请尝试运行修正后的代码,看是否能够正常滚动。如果仍然有问题,请提供更多详细的信息,让我们更好地理解您遇到的困难。再次为之前的回答失误给您带来的不便道歉。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

清風 发表于 2024-2-22 07:35:02

FishC 发表于 2024-2-22 07:31
抱歉,我之前的回答有误。在PyQt中,我们可以使用`QPropertyAnimation`来创建动画效果,从而实现进度条 ...

不行,首先QPropertyAnimation.py单独运行就没有滚动动作,停留在0%。。


回复请注意python格式

FishC 发表于 2024-2-22 07:31:06

清風 发表于 2024-02-22 07:30
不能   还是没有滚动动作

抱歉,我之前的回答有误。在PyQt中,我们可以使用`QPropertyAnimation`来创建动画效果,从而实现进度条的滚动。以下是修正后的代码示例:

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QProgressBar, QLabel
from PyQt6.QtCore import QTimer, Qt, QPropertyAnimation

class CustomProgressBar(QProgressBar):
    def __init__(self, parent=None):
      super().__init__(parent)
      self.setStyleSheet(
            """
            QProgressBar {
                text-align: center;
                color: white;
                border: none;
                background-color: #909090;
                height: 20px;
            }
            QProgressBar::chunk {
                background-color: #00A3E0;
            }
            """
      )
      self.setTextVisible(True)
      self.counter = 0

    def scrollToCenter(self):
      max_value = self.maximum()
      if max_value > 0:
            self.setValue(max_value)

    def startAnimation(self):
      animation = QPropertyAnimation(self, b"value")
      animation.setDuration(1000)
      animation.setStartValue(0)
      animation.setEndValue(self.maximum())
      animation.setLoopCount(-1)# -1表示无限循环
      animation.start()

class HuanYingWindow(QWidget):
    def __init__(self):
      super().__init__()
      self.initUI()

    def initUI(self):
      layout = QVBoxLayout(self)
      progressBar = CustomProgressBar()
      layout.addWidget(progressBar)
      progressBar.scrollToCenter()
      progressBar.startAnimation()
      self.setLayout(layout)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = HuanYingWindow()
    window.show()
    sys.exit(app.exec())

在修正后的代码中,我们使用`QPropertyAnimation`来创建一个动画对象,并将其应用于进度条的`value`属性。通过设置动画的起始值和结束值,以及循环次数,我们可以实现进度条滚动的效果。

请尝试运行修正后的代码,看是否能够正常滚动。如果仍然有问题,请提供更多详细的信息,让我们更好地理解您遇到的困难。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1] 2
查看完整版本: 进度条调入问题?