使用样式表隐藏 QScrollBar 箭头

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

我试图通过使用 Qt 5.15 应用样式表来摆脱作为 QListWidget 一部分的垂直 QScrollBar 的箭头。

由于我不希望顶部和底部出现奇怪的行为,因此仅按照建议隐藏箭头here是不够的。这个问题的一个答案建议将箭头的

width
height
设置为
0px
,我尝试使用

setStyleSheet("QScrollBar:vertical::up-arrow, QScrollBar:vertical::down-arrow {height: 0px;}");

但这会导致滚动条不显示。通过使用强制它显示

setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);

QListWidget 上的结果会显示标准滚动条。

有趣的是,使用任何非零高度,例如

30px
会导致相同的结果,同时更改宽度效果非常好(尽管宽度随后应用于整个滚动条,但这不是重点)。

如何在不重写所有 mouseEvents 的情况下实现此目的?

qt qtstylesheets qscrollbar
1个回答
0
投票

感谢musicamante的评论,我发现我对加行和子行以及箭头有错误的想法。以下代码成功隐藏了箭头:

setStyleSheet("QScrollBar:vertical { background: transparent; width: 10px; margin: 0px 0px 0px 0px; }"
                  "QScrollBar::add-line:vertical { border: 0px; height: 0px; }"
                  "QScrollBar::sub-line:vertical { border: 0px; height: 0px; }");

设置

QScrollBar:vertical
的宽度是可选的,但更改背景颜色似乎是必需的。

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