1

标准滑块当我使用 setStyleSheet更改标准滑块时:

mySlider = new QSlider(Qt::Horizontal, this);

mySlider->setStyleSheet("QSlider::handle:horizontal { border: 1px solid #777; background:#92B558;}");

生成的滑块如下所示:改变滑块

我想要的是保持标准滑块的形状具有不同的颜色。是否有另一种方法可以重新着色标准滑块,或者创建另一个看起来相似的手柄?

4

1 回答 1

1

恐怕这是不可能的,因为滑块的形状实际上是使用应用程序 QStyle 绘制的。当为滑块分配样式表规则时,该规则将覆盖由 QStyle 完成的绘制。查看QFusionStyle的实现以获取更多详细信息。

为了实现您的目标,您可以准备一个具有滑块的确切形状和颜色的像素图,然后在样式表代码中将其指定为背景。

否则,您可能会在paintEvent 中进行子类化并自己完成所有的工作,但是如果您只想更改滑块恕我直言的颜色,我认为这是一种矫枉过正的做法。

于 2018-04-11T13:25:25.377 回答