gpt4 book ai didi

python - 改变 QProgressbar() 的颜色

转载 作者:太空狗 更新时间:2023-10-30 02:23:08 24 4
gpt4 key购买 nike

我想知道是否可以更改 PyQt 进度条的颜色?

我有以下代码:

from PyQt4 import QtGui, QtCore
Pbar1 = QtGui.QProgressBar()
Pbar1.setParent(Frame1)
Pbar1.setGeometry(0, 0, 306, 30)
Pbar1.setValue(Frame1Value)
if Pbar1.value == 100
......Pbar1.setColor(Red)

Frame1Value 依赖于一些早期的计算,并且假设永远不会计算出完全相同的值。

我希望进度条在值为 100 时变为“红色”(由于进度条不会显示高于 100% 的值,因此该值被设置为限制),这样可以让我更好地了解以下事实该值“不受约束”。

我知道 .setColor 不是进度条的已知命令,但这只是为了展示我的想法。

有谁知道如何做到这一点,或者这是否可能?

提前致谢!

最佳答案

您可以子类化 QProgressBar 并使用一些样式表见Customizing Qt Widgets Using Style SheetsCustomizing QProgressBar :

from PyQt4 import QtGui, QtCore

DEFAULT_STYLE = """
QProgressBar{
border: 2px solid grey;
border-radius: 5px;
text-align: center
}

QProgressBar::chunk {
background-color: lightblue;
width: 10px;
margin: 1px;
}
"""

COMPLETED_STYLE = """
QProgressBar{
border: 2px solid grey;
border-radius: 5px;
text-align: center
}

QProgressBar::chunk {
background-color: red;
width: 10px;
margin: 1px;
}
"""

class MyProgressBar(QtGui.QProgressBar):
def __init__(self, parent = None):
QtGui.QProgressBar.__init__(self, parent)
self.setStyleSheet(DEFAULT_STYLE)

def setValue(self, value):
QtGui.QProgressBar.setValue(self, value)

if value == self.maximum():
self.setStyleSheet(COMPLETED_STYLE)

unfinished completed

另一种解决方案是将调色板重新分配给 QProgressBar,这将允许您拥有“样式感知”组件:

class MyProgressBar(QtGui.QProgressBar):
def setValue(self, value):
QtGui.QProgressBar.setValue(self, value)
if value == self.maximum():
palette = QtGui.QPalette(self.palette())
palette.setColor(QtGui.QPalette.Highlight,
QtGui.QColor(QtCore.Qt.red))
self.setPalette(palette)

关于python - 改变 QProgressbar() 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6277369/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com