1.QScrollArea滚动条策略
-
Qt::ScrollBarPolicy::ScrollBarAsNeeded
-
当使用Qt设计师直接拖拽时,Qt设计师会创建一个QWidget作为QScrollArea的内容呈现,此时自动出现的滚动条为在该QWidget中的滚动条,对QScrollArea的滚动条进行样式设置时是不生效的,因为设置的样式是针对QScrollArea中的滚动条,而QWidget中的滚动条。
-
当使用
QScrollArea* pScrollArea = new QScrollArea();
创建QSCrollArea时,选择Qt::ScrollBarPolicy::ScrollBarAsNeeded策略时,自动出现的滚动条就为QScrollArea中的滚动条了,样式设置如下:m_pScrollArea->verticalScrollBar()->setStyleSheet(QString::fromUtf8( "QScrollBar{background-color:white; width:8px; margin:1px 2px 1px 2px;}" //sliding area "QScrollBar::handle{background-color:rgba(61,65,81,120); width:4px; border-radius:2px;}" //sliding block "QScrollBar::handle:hover{background:rgb(61,65,81);}" "QScrollBar::add-line,QScrollBar::sub-line{border:none;}" //up arrow and ));
-
-
Qt::ScrollBarPolicy::ScrollBarAlwaysOn
强制出现滚动条,该滚动条为QScrollArea中的滚动条。可以对其进行样式设置,设置方式如前所述。
-
Qt::ScrollBarPolicy::ScrollBarAlwaysOff
关闭滚动条
2.必须使用setWidget添加窗口,当所添加的窗口大小大于`QScrollArea窗口的大小时,采用Qt::ScrollBarPolicy::ScrollBarAsNeeded策略方可出现滚动条。
3.当使用布局时,可以将布局设置为某个窗口的布局,然后使用setWidget添加到QScrollArea中。