我使用
slider->setPalette(QPalette(mycolor, mycolor));
以对滑块进行着色(Qt5)。在Linux下,这是完美的,但在Windows7下,滑块看起来完全正常,颜色没有任何变化。
有没有办法在窗户下面放上彩色滑块?
您需要在QSlider
上调用setAutoFillBackground(true)
才能工作:
QPalette p;
p.setColor(QPalette::Window, QColor(42, 42, 42));
slider->setAutoFillBackground(true);
slider->setPalette(p);
作为替代方案,您可以使用QSS
:
slider->setStyleSheet("QSlider::groove:horizontal { background-color: red; } ");
用于水平滑块或
slider->setStyleSheet("QSlider::groove:vertical{ background-color: red; } ");
用于垂直滑块。
如果你想设置QColor
,你会想做一些类似的事情:
QColor myColor;
myColor.setRgb(42, 42, 42);
QString backgroundColor = QString("rgb("%1, %2, %3);").arg(myColor.red()).arg(myColor.green()).arg(myColor.blue());");
slider->setStyleSheet("QSlider::groove:vertical{ background-color: " + backgroundColor + " } ");
所以结果会是这样的:
QSlider::groove:vertical{ background-color: rgb(42, 42, 42); }
更多详细信息请点击此处。