QScrollBar的句柄如何样式化和可伸缩?

How can the handle of a QScrollBar be styled and made scalable?

本文关键字:可伸缩 样式 句柄 何样式 QScrollBar      更新时间:2023-10-16

我有一个样式的QScrollBar在我的表上,它使用图像作为滚动条的手柄。手柄的边缘是圆形的(当然,图像的边缘是透明的)。现在的问题是,我似乎不能很好地调整它的大小。这是一个垂直滚动条,所以我发现到目前为止工作的唯一方法是设置:

background-image: url(:/res/img/scrollbar-vhandle.png);
background-repeat: repeat-y;

在我的样式表。这是它应该做的,只是我的滚动条看起来很丑,特别是因为圆角。

可以通过从它的y中心重复1px高的线来"拉伸"图像。但即使是y型拉伸也是可以的。我就是找不到一个好的方法来做这件事。像QPushButton这样的东西,其中9个图像可以用于一个按钮,以便缩放,但不幸的是,它似乎不像。

所以,如果有人能让我知道,如果这是一种方式来做到这一点,通过样式表(或从QScrollBar派生,并重新绘制手柄),我将非常感激。

如果你需要更多的信息,请告诉我。

正如您所说,您可以从滚动条继承并重载paintEvent函数。在这里,你几乎可以做任何你想做的事情,例如,通过重复那条线并绘制它来计算新的像素图。实际上,QPixmap中有几个函数可以使此操作相对容易。