问题 隐藏QScrollBar箭头


如何隐藏 QScrollBar 箭?

我需要隐藏在水平滚动条中。 我试图躲起来 setStyleSheet

setStyleSheet(" QScrollBar:left-arrow:horizontal, QScrollBar::right-arrow:horizontal { height:0px; }" )

但它不起作用。


9622
2018-01-16 08:54


起源

你的意思是箭头或包含箭头的按钮? - thuga
是的确如此。 - Gspo
我已经尝试在QtDesigner中自定义滚动条,看起来Qt中滚动条的样式表有一段艰难的历史。你无法改变它的箭头样式。您应该在QScrollBar中重新实现一切的样式,然后才会更改样式。见这里的例子: qt-project.org/doc/qt-5/... 。复制整个示例有效。只有箭头部分 - 没有。多数民众赞成我相信。 - Pie_Jesu


答案:


如果您只需要隐藏按钮内的箭头,那么您可以尝试以这种方式设置背景和边框:

QScrollBar::right-arrow:horizontal, QScrollBar::left-arrow:horizontal
{
      border: none;
      background: none;
      color: none;
}

如果你想隐藏整个按钮,那么你可以使用下面的代码。

QScrollBar::add-line:horizontal {
      border: none;
      background: none;
}

QScrollBar::sub-line:horizontal {
      border: none;
      background: none;
}

10
2017-09-23 07:28





我知道这是一个老问题,但我已经遇到了这个问题的批准答案的问题,我已经找到了解决它的问题所以我将把它留在这里以防有人遇到同样的问题我没有。

接受的答案 建议设置 borderbackground 和 color 至 none,这只是 视觉 隐藏滚动条箭头。我的意思是你仍然可以点击它们,滚动条的手柄,它可以移动到它们占用的地方,  如果光标位于箭头按钮占用的区域,请单击。

为了在功能上隐藏它们,你应该设置它们 width 和 height 风格 0px 同样。这将使你如此 能够 如果滚动条的手柄位于箭头按钮占用的区域,请单击手柄。


1
2017-08-27 21:57





为了隐藏滚动条,您可以为该特定滚动条设置滚动条策略(在您的情况下为水平)。例如:

QScrollBar scrollBar;
scrollBar.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

0
2018-01-16 09:36



我需要隐藏 箭头 滚动条不是整个它。 - Gspo