gpt4 book ai didi

Python:QtGui.QProgressBar 颜色

转载 作者:行者123 更新时间:2023-11-28 22:50:49 26 4
gpt4 key购买 nike

我想知道是否有办法自定义进度条的颜色(QtGui.QProgressBar)。假设我们希望在条形图达到 100% 时将其变为绿色。

这是一个工作示例:

import sys, time
from PyQt4 import QtCore, QtGui

class PbWidget(QtGui.QProgressBar):
def __init__(self, parent=None, total=20):
super(PbWidget, self).__init__()
self.setMinimum(1)
self.setMaximum(total)
self._active = False

def update_bar(self, to_add_number):
while True:
time.sleep(0.01)
value = self.value() + to_add_number
self.setValue(value)
QtGui.qApp.processEvents()
if (not self._active or value >= self.maximum()):
break
self._active = False

def closeEvent(self, event):
self._active = False


class MainWindow(QtGui.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.main_layout = QtGui.QVBoxLayout()

self.pb=PbWidget(total=101)
self.main_layout.addWidget(self.pb)

ok_button = QtGui.QPushButton("Press to update Progress Bar")
ok_button.clicked.connect(self.OK)
self.main_layout.addWidget(ok_button)

central_widget = QtGui.QWidget()
central_widget.setLayout(self.main_layout)
self.setCentralWidget(central_widget)

def OK(self):
self.pb.update_bar(10)

if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = MainWindow()
window.resize(480, 320)
window.show()
sys.exit(app.exec_())

最佳答案

是的,为此使用 CSS。是的 CSS 你读得很好! ;)

将此函数添加到您的 PbWidget 类:

def change_color(self, color):
template_css = """QProgressBar::chunk { background: %s; }"""
css = template_css % color
self.setStyleSheet(css)

颜色参数需要类似:“黄色”、“蓝色”、“红色”……以及十六进制符号:“#FFD45”等……

您可以在 update_bar 中调用此函数,并根据进度条值向其传递一些颜色。例如:

def update_bar(self, to_add_number):
while True:
time.sleep(0.5)
value = self.value() + to_add_number
self.setValue(value)
if value > 50:
self.change_color("yellow")
QtGui.qApp.processEvents()
if (value >= self.maximum()):
break
self._active = False

要更改其他视觉属性,请访问:Qt StyleSheet Reference并寻找 QtProgressBar。祝你好运!!!

关于Python:QtGui.QProgressBar 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22332106/

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