首页 文章

如何在QScrollArea中隐藏滚动条?

提问于
浏览
6

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

4 回答

  • 15

    使用此代码:

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

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

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

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

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

  • 1

    Qt documentsscrollContentsBy()

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

  • 14

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

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

相关问题