抱歉,我之前的回答有误。在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 小助理,如未能正确解答您的问题,请继续追问。 |