擅长:python、mysql、java
<p>感谢@eyllanesc提供了一个健壮的解决方案。我选择使用一种更轻巧(公认是老套的)解决方案,将两个进度条重叠,并使用<code>QGraphicsOpacityEffect</code>使顶部栏稍微透明。在</p>
<pre><code> # Opaque prog bar
self.verifyProgress = QProgressBar(self)
self.verifyProgress.setGeometry(5, 5, 300, 25)
self.verifyProgress.setMaximum(self.objectsToProcess)
self.verifyProgress.setFormat('%p% / ')
self.verifyProgress.setAlignment(Qt.AlignCenter)
# Must set the transparent prog bar second to overlay on top of opaque prog bar
self.processProgress = QProgressBar(self)
self.processProgress.setGeometry(5, 5, 300, 25)
self.processProgress.setMaximum(self.objectsToProcess)
self.processProgress.setFormat(' %p%')
self.processProgress.setAlignment(Qt.AlignCenter)
op = QGraphicsOpacityEffect(self.processProgress)
op.setOpacity(0.5)
self.processProgress.setGraphicsEffect(op)
</code></pre>
<p>结果:</p>
<p><a href="https://i.stack.imgur.com/GGQWL.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/GGQWL.png" alt="enter image description here"/></a></p>