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

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

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

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

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

3 ответа

Решение

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

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

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

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

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

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

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

Создать 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;
}
Другие вопросы по тегам