Скрыть стрелки QScrollBar

Как скрыть QScrollBar стрелки?

Мне нужно спрятаться в горизонтальной полосе прокрутки. Я пытался скрыть setStyleSheet:

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

но это не сработает.

Ответ 1

Если вам нужно скрыть только стрелки внутри кнопок, вы можете попытаться установить фон и границу следующим образом:

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

Ответ 2

Я знаю, что это старый вопрос, но я столкнулся с проблемой с этим утвержденным ответом на вопрос, и я нашел решение для этого, поэтому я собираюсь оставить это здесь на случай, если кто-то столкнется с той же проблемой, что и я. сделал.

В то время как принятый ответ предполагает установку border, background и color на none, это только визуально скрывает стрелки полосы прокрутки. Под этим я подразумеваю, что вы по-прежнему можете щелкать по ним, и на ручку полосы прокрутки, хотя она может перемещаться в место, которое они занимали, нельзя нажимать, если курсор находится в области, занимаемой кнопками со стрелками.

Чтобы также функционально скрыть их, вы должны также установить их width и height в 0px. Это сделает так, что вы можете нажать на ручку, если ручка полосы прокрутки находится в области, занятой кнопками со стрелками.

Ответ 3

Чтобы скрыть полосу прокрутки, вы можете установить политику полосы прокрутки для этой конкретной полосы прокрутки (по горизонтали в вашем случае). Например:

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

Ответ 4

Создайте 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;
}