В настоящее время я делаю графический интерфейс с использованием PyQt4.Мой вопрос: как мне настроить разные цвета фона для QSlider::groove:horizontal
в определенном диапазоне значений ползунка индекса?Вот минимальный рабочий пример:
from PyQt4 import QtCore, QtGui
#%%
data_range = [0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0]
color_range =['black','black','black','black','white','white',\
'white','black','black','white','white','black']
class MyWidget(QtGui.QWidget):
def __init__(self):
super(MyWidget, self).__init__()
self.initUI()
def initUI(self):
self.setGeometry(600,300,500,100)
# Definition of the slider
self.slider = QtGui.QSlider(minimum=0,\
maximum= len(data_range)-1,\
orientation=QtCore.Qt.Horizontal,\
tickInterval=1)
# Trying to customize it
self.slider.setStyleSheet(\
"QSlider::groove:horizontal {\
border: 1px solid #999999;\
height: 8px; \
background: white;\
margin: -4px 0;\
}QSlider::handle:horizontal {\
background-color: red;\
border: 1px solid #5c5c5c;\
border-radius: 0px;\
border-color: black;\
height: 8px;\
width: 6px;\
margin: -8px 2; \
}")
grid = QtGui.QGridLayout(self)
hbox = QtGui.QHBoxLayout()
hbox.addWidget(self.slider)
grid.addLayout(hbox, 3, 0, 1, 3)
def main():
import sys
app = QtGui.QApplication(sys.argv)
w = MyWidget()
w.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
В этом случае канавка Qslider должна быть черной от 0: 4, белой от 4: 7, черной от 7: 9 и т. Д.
Я пытался использовать self.slider.setStyleSheet()
, следуя документации qt , но напрасно ...
Любая помощь или альтернативные идеи по украшению слайдера были бы очень благодарны.