Qt样式表(7):使用样式表设置滚动条的外观

时间:2024-03-16 17:01:34

Qt样式表(7):使用样式表设置滚动条的外观

若对C++语法不熟悉,建议参阅《C++语法详解》一书,电子工业出版社出版,该书语法示例短小精悍,对查阅C++知识点相当方便,并对语法原理进行了透彻、深入详细的讲解,可确保读者彻底弄懂C++的原理,彻底解惑C++,知其然更知其所以然。此书是一本全面了解C++不可多得的案头必备图书。

4、滚动相关

19)、QAbstractScrollArea		//支持盒子模型,background-attachment属性(滚动或固定)可被使用
20)、QScrollBar				//支持盒子模型
	内容矩形被认为是滑块移动的凹槽。
	:horizontal和:vertical伪状态用于确定滚动条的方向
	width和height属性可设置QScrollBar的范围。
	::handle子控件用于设置滑块的样式
	min-width和min-height属性用于限制滑块的大小
	::add-line子控件用于设置增加一行的按钮(比如向下或向右按钮)
	::sub-line子控件用于设置减少一行的按钮(比如向上或向左按钮)
	::right-arrow或::down-arrow子控件用于设置向右或向下箭头,默认情况下,这两个子控件位于add-line子控件内容矩形的中心
	::left-arrow或::up-arrow子控件用于设置向左或向上箭头,默认情况下,这两个子控件位于sub-line子控件内容矩形的中心
	::sub-page子控件用于设置减少页的滑块区域样式
	::add-page子控件用于设置增加页的滑块区域样式
21)、QSlider				//支持盒子模型
	对于水平滑块,必须提供min-width和height属性
	对于垂直滑块,必须提供min-height和width属性
	::groove子控件用于设置滑块的凹槽,默认情况下,凹槽位于滑块的内容矩形中
	::handle子控件设置滑块的手柄,该子控件在::groove子控件的内容矩形中移动

示例13.23:滚动条(QScrollBar)(效果见图13-41)
为了讲清楚滚动条的原理及理解滚动条的各组成部分,本示例将绘制如图13-41所示非传统形式的滚动条
Qt样式表(7):使用样式表设置滚动条的外观

#include<QtWidgets>
int main(int argc, char *argv[]){    QApplication aa(argc,argv);
QWidget w;		QScrollBar *ps=new QScrollBar(&w);
ps->setOrientation(Qt::Vertical);			ps->move(22,22);
/*本示例为垂直滚动条,因此滚动条会一直处于:vertical伪状态,所以对滚动条的每个子控件的设置都需要指定该状态*/
aa.setStyleSheet(
//1、设置整个滚动条
"QScrollBar:vertical {border: 2px solid red;  	margin:50 100 50 100;"
      	"background-clip:margin; 	background: green;	"
			//注意:width和height属性仅用于子控件,因此此处使用min-width和min-height
"min-width: 50;		min-height:200;}"
	//2、设置滚动条的滑块
"QScrollBar::handle:vertical {background: white;		min-height: 20px;}"
	//3、设置滚动条的向下按钮
   	"QScrollBar::add-line:vertical {"
       	"border: 2px solid blue;		background: yellow;"
      	" height: 40px;	width:50px;"
       	"subcontrol-position: bottom left;	 subcontrol-origin: margin;}"
	//4、设置滚动条的向上按钮
  	" QScrollBar::sub-line:vertical {"
      	"border: 2px solid blue;		background: yellow;"
       	"height: 40px;		width:50px;"
      	"subcontrol-position: top left;		subcontrol-origin: margin;}"
	//5、设置向上和向下箭头
   	"QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical {"
       	"border: 2px solid blue;		width: 22px;	height: 22px;	background: red;}"
	//6、设置滚动条的增加页区域
  	" QScrollBar::add-page:vertical{background: rgb(111,1,111);}"	//紫色
	//7、设置滚动条的减少页区域
" QScrollBar::sub-page:vertical {background: rgb(1,111,111);}"	//青色
        );
    w.resize(400,333);    w.show();    return aa.exec();	}

本文作者:黄邦勇帅(原名:黄勇)