Как скрыть полосу прокрутки в QScrollArea?
Как можно скрыть полосы прокрутки в QScrollArea
? В настоящее время я использую hide()
метод на полосах прокрутки, возвращаемых QScrollArea::horizontalScrollBar()
а также QScrollArea::verticalScrollBar()
но место, отведенное для полос прокрутки, все еще остается. Очевидно, это выглядит очень некрасиво и не экономит место. Если я удаляю полосы прокрутки в целом, я больше не могу легко перемещаться к определенной точке, используя QScrollBar::setValue()
,
4 ответа
Вы можете скрыть это, используя таблицу стилей. использование height:0px;
скрыть горизонтальную полосу прокрутки и width=0px;
скрыть вертикальную полосу прокрутки. Как это:
horizontalScrollBar()->setStyleSheet("QScrollBar {height:0px;}");
verticalScrollBar()->setStyleSheet("QScrollBar {width:0px;}");
И вуаля!. Нет полос прокрутки, и вы все еще можете управлять ими, используя setValue()
,
И да, я думал 3 года ответа. Так что я наконец-то могу купить себе закуски.
Используйте этот код:
QAbstractScrollArea::setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff )
QAbstractScrollArea::setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff )
Этот кусок кода может сделать работу:
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
verticalScrollBar()->hide();
verticalScrollBar()->resize(0, 0);
Из документов Qt для scrollContentsBy()
:
Вызов этой функции для программной прокрутки является ошибкой, вместо этого используйте полосы прокрутки (например, вызывая QScrollBar::setValue() напрямую).