如何在不改变手柄形状的情况下改变QScrollbar的背景颜色?

问题描述 投票:0回答:1

我正在尝试使用样式表更改

QGraphicsView
中滚动条的背景颜色。但它也将处理程序的形状从漂亮的圆条变成了丑陋的矩形。是否可以保留原来的形状?这是代码:

QString style = R"( QScrollBar:vertical {
                            background: rgb(61,61,61);
                        }
                        QScrollBar::handle:vertical {
                            background: rgb(119,119,119);
                            min-width: 20px;
                        }

                     QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
                         background: none;
                     })";

myGraphicsView->setStyleSheet(style);

这是原来的样子:

这是设置样式表后的结果(现在手柄是矩形的):

qt qtstylesheets qscrollbar
1个回答
0
投票

对于OP来说有点晚了,但对于其他人来说......

我会尝试为您的手柄添加更具体的样式。

我在去年成功工作的应用程序级样式表中有以下内容

QScrollBar:vertical {
border: 1px solid #5c5c5c; /* If this isn't specified... OMG */
/*background: yellow;*/
width: 50px;
margin: 35px 0 35px 0px;
}
QScrollBar::handle:vertical {
    /*background: green;*/
    min-height: 35px;
}

我怀疑在没有应用样式的情况下,系统默认的“本机”样式用于整个滚动条。如果您应用样式的一个元素,则会显式绘制一个(简单)默认样式,并且您的样式将应用到该样式。因此,如果您仅指定滚动条的背景颜色,您将获得手柄的默认样式。因此,您想要指定句柄的大部分组件,使其看起来像本机系统一样 - 边框样式、颜色、边框半径...

我实际上从我的应用程序中清除了滚动条,现在我不记得如果您不指定边框会发生什么 - 但它一定非常难看! (我的审美标准很低……)

© www.soinside.com 2019 - 2024. All rights reserved.