如何在QScrollArea中隐藏滚动条?

paf*_*fcu 8 qt qscrollarea

如何隐藏滚动条QScrollArea?目前我hide()在返回的滚动条上使用该方法QScrollArea::horizontalScrollBar(),QScrollArea::verticalScrollBar()但是为滚动条保留的空间仍然存在.显然这看起来非常丑陋并且不节省空间.如果我完全删除滚动条,我就不能再使用滚动到特定点了QScrollBar::setValue().

Mad*_*Air 17

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

horizontalScrollBar()->setStyleSheet("QScrollBar {height:0px;}");
verticalScrollBar()->setStyleSheet("QScrollBar {width:0px;}");
Run Code Online (Sandbox Code Playgroud)

瞧!没有滚动条,你仍然可以使用它们来操纵它们setValue().

是的,我想了3年的答案.所以我终于可以给自己买些零食.


Mas*_*ang 16

使用此代码:

QAbstractScrollArea::setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff )
QAbstractScrollArea::setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff ) 
Run Code Online (Sandbox Code Playgroud)

  • 如果需要时需要滚动条,请使用以下策略:Qt :: ScrollBarAsNeeded.如果要滚动内容编程,请使用QAbstractScrollArea :: scrollContentsBy(int dx,int dy) (3认同)
  • 如果我这样做,我不能再使用QScrollBar :: setValue()滚动到特定点(因为滚动条不存在) (2认同)