我试图通过使用 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 的情况下实现此目的?
感谢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
的宽度是可选的,但更改背景颜色似乎是必需的。