如何在QScrollArea中隐藏滚动条?

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

回答(4)

3 years ago

使用此代码:

QAbstractScrollArea::setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff )
QAbstractScrollArea::setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff )

3 years ago

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

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

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

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

3 years ago

Qt documentsscrollContentsBy()

调用此函数以便以编程方式滚动是一个错误,请改用滚动条(例如直接调用QScrollBar :: setValue()) .

3 years ago

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

setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
 verticalScrollBar()->hide();
 verticalScrollBar()->resize(0, 0);