隐藏QScrollBar箭头

时间:2014-01-16 08:54:31

标签: qt scrollbar qtstylesheets

如何隐藏QScrollBar箭头?

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

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

但它不起作用。

4 个答案:

答案 0 :(得分:12)

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

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;
}

答案 1 :(得分:4)

我知道这是一个老问题,但是我遇到了有关该问题的认可答案的问题,并且找到了解决方法,因此如果有人遇到相同问题,我将在此保留我遇到的问题。

尽管the accepted answer建议将borderbackgroundcolor设置为none,但这只是视觉上隐藏了滚动箭头。我的意思是,您仍然可以单击它们,并且滚动条的手柄可以移动到它们占据的位置,但是如果光标位于箭头按钮区域内,则不能单击 占领。

要在功能上也隐藏它们,还应该将它们的widthheight样式也设置为0px。如果滚动条的手柄位于箭头按钮所在的区域,则可以 单击该手柄。

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

创建一个QScrollBar并为其分配此样式表,这应该可以解决问题。参见下面的示例。

QScrollBar:vertical {
  width: 15px;
  background: #f1f1f1;
}

QScrollBar::handle:vertical {
  background: #888;
}

QScrollBar::add-line:vertical {
  border: 2px solid gray;
  background: #f1f1f1;
}

QScrollBar::sub-line:horizontal {
  border: 2px solid gray;
  background: #f1f1f1;
}

QScrollBar::handle:hover:vertical {
  background: #555;
}