Qt5 QSlider调色板在窗口下没有效果



我使用

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); }

更多详细信息请点击此处。

相关内容

  • 没有找到相关文章

最新更新