我用
slider->setPalette(QPalette(mycolor, mycolor));
为滑块(Qt5)着色。在Linux下,这可以很好地工作,但在Windows 7下,滑块看起来完全正常,没有任何颜色变化。
有没有办法在Windows下获得彩色滑块?
答案 0 :(得分:1)
您需要致电setAutoFillBackground(true)
QSlider
才能实现此目的:
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); }
更多详情here。