9

如何隐藏滚动条QScrollArea?目前我hide()在返回的滚动条上使用该方法,QScrollArea::horizontalScrollBar()QScrollArea::verticalScrollBar()为滚动条保留的空间仍然存在。显然,这看起来很丑陋,而且不节省空间。如果我完全移除滚动条,我将无法再使用QScrollBar::setValue().

4

4 回答 4

19

您可以使用样式表将其隐藏。用于height:0px;隐藏水平滚动条和width=0px;隐藏垂直滚动条。像那样:

horizontalScrollBar()->setStyleSheet("QScrollBar {height:0px;}");
verticalScrollBar()->setStyleSheet("QScrollBar {width:0px;}");

瞧!没有滚动条,您仍然可以使用setValue().

于 2013-09-05T11:09:39.013 回答
18

使用此代码:

QAbstractScrollArea::setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff )
QAbstractScrollArea::setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff ) 
于 2010-08-02T01:42:01.883 回答
2

这段代码可以完成这项工作:

 setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
 verticalScrollBar()->hide();
 verticalScrollBar()->resize(0, 0);
于 2010-08-30T02:37:22.877 回答
1

来自QtscrollContentsBy()文档:

调用此函数以编程方式滚动是错误的,请改用滚动条(例如,通过直接调用 QScrollBar::setValue())。

于 2011-11-28T19:03:37.530 回答