QScrollBar样式 - qss样式表学习

QScrollBar样式

滚动条在Qt里叫做QScrollBar,使用样式设置控件的外观很方便,这里分享一下滚动条的样式设置。例如下面的树形控件的滚动条的样式。

const QString VSCROLLBAR_STYLE =

“QScrollBar:verTIcal {margin: 13px 0px 13px 0px;background-color: rgb(255, 255, 255, 100); border: 0px; width: 12px;}\

.QScrollBar::handle:verTIcal {background-color: purple; width: 12px; }\ 。

QScrollBar::add-page:verTIcal {background-color: pink; }\ 。

QScrollBar::sub-page:verTIcal {background-color: orange; }\

.QScrollBar::sub-line:vertical {subcontrol-origin: margin; border: 1px solid red; height:13px}\

.QScrollBar::up-arrow:vertical { subcontrol-origin: margin; background-color: blue; height:13px}\

.QScrollBar::down-arrow:vertical { background-color: yellow; }\

.QScrollBar::add-line:vertical {subcontrol-origin: margin; border: 1px solid green; height:13px}“;

QScrollBar样式 - qss样式表学习

QScrollBar分为sub-line、add-line、add-page、sub-page、up-arrow、down-arrow和handle几个部分,这几个相应的部位都己经在上面画出来了。sub-line包含了up-arrow,而add-line则包含了down-arrow区域。

需要注意的是,如果不对sub-line、add-line设置subcontrol的话,会出现下面的问题。如果不设置整个QScrollBar的marg-left和margin-bottom话,则不能定制add-line和sub-line区域。

QScrollBar样式 - qss样式表学习

没有定义sub-control为margin

QScrollBar样式 - qss样式表学习

没有定义margin-top和margin-bottom