欢迎光临散文网 会员登陆 & 注册

Qt之样式表qss基础知识

2022-10-12 01:46 作者:SilverFox_Ankha  | 我要投稿

前言

        本文是作者学习Qt样式表时搜集和总结的一些制作经验,总觉得市面上很缺少关于Qt的样式表教程,就此我打算编写一个可以给大家作为参考的qss样式表参考。

        往后如果大家写qt不知道样式如何调整,希望我的文章可以给大家一些支持。

        如果可以帮助大家,希望可以点赞关注支持我一下,你们的支持就是我的动力!!

某些我也不会的我也标注出来,日后如果有新发现,我会实时更新这个专栏

欢迎关注点赞支持

‍PyQt5学习爱好群主群:732513891(已满)

PyQt5学习爱好群二群:937759168(已满)

PyQt5学习爱好群三群:757679170


简单介绍样式表使用

  • 通常我会使用Qt Designer来辅助我设计界面。其中右键点击控件会出现改变样式表。(如图1)

图1
  • 在弹出的样式表中,我们就可以对控件进行编写。(如图2)

图2
  • 格式可以直接写qss代码,用分号分割。如果想指定某控件,那么需要把控件类的名称写上,用大括号包好,大括号里面同样每行代码需要用分号分割。用类名称编写会让这个控件下的所有子控件都继承这个样式。使用时需要注意。

  • 如果类名称加了点,表示不包括子控件。

/*选择器*/
QFrame{
	color: rgb(255, 255, 255);
  	background-color: rgb(255, 255, 255);
}
QWidget{
	color: rgb(255, 255, 255);
  	background-color: rgb(255, 255, 255);
}
.QFrame{
	color: rgb(255, 255, 255);
  	background-color: rgb(255, 255, 255);
}
  • 如果需要指定某控件来可以用#加上控件名称来指定改变样式,不会影响其他控件

  • 使用*号可以匹配所有控件

/*id选择器*/
#listWidget{
	color: rgb(255, 255, 255);
	background-color: rgb(255, 255, 255);
}
*{
	color: rgb(255, 255, 255);
	background-color: rgb(255, 255, 255);
}
  • 每一个控件都是由多个小控件合并出来的,比如日历就是由多个控件组成(如图3)

图3
  • 想要改变某一个部分的样式,就需要单独调取,比如中间日历天数位置就需要这样写来改变样式, 

  • QCalendarWidgetd代表中间日历天数的背景布,QTableView代表上面的日期数字层,用空格分割即可

/*包含选择器*/
QCalendarWidget QTableView 
{
	alternate-background-color: rgba(255, 255, 255,0);
	font: 14pt "Hei";
}
  • 如果想在一个控件不同状态下改变他的样式,则需要用上选择器,选择器的使用方法是在控件类或名称后面加上冒号连着状态。

/*子控件选择器*/
QAbstractItemView:disabled {
	background-color: rgba(255, 255, 255,0);
    selection-color: white;
	selection-background-color: rgba(193, 231, 255,0);
	font-size:20px;
}
/*复合控件选择器*/
QCheckBox::indicator {
  width:40px;
  height:40px;
}
  • 部分控件在不同状态下可以来进行样式改变。

:hover   					鼠标悬停在上面时
:pressed   					控件被按下时
:checked   					控件被选中
:unchecked   				控件未被选中
:indeterminate   			checkBox或者radioButton被部分选中(半选中)
:focus   					控件获取焦点
:disabled   				控件失效
:enabled   					控件有效
:on   						控件处于on状态
:off   						控件处于off状态
:! 							可以否定 例:QPushbutton:!pressed{}
:hover:checked  			鼠标在上且被选中时

示例:QPushbutton:pressed{color:red;}  当鼠标点击按钮时,按钮变为红色

        那么大致的语法使用我介绍完了,接下来直接给大家寄出车轮。望大家以后的日子不用重复造轮子~

基本样式(多数控件通用)

background-color:red  		设置背景色
color:red 					设置文字颜色
font-size:10px  			设置字体大小
width: 20px   				设置宽度
height: 20px  				设置高度
image:url(./image.png)   	添加图片
margin: 20px    			外边距
padding: 20px   			内边距
content: 20px  				内容矩形
border:3px solid red		设置边框(3px粗细,solid样式,red颜色)
border-radius:8px         	圆角(半径,单位,像素)

高级样式

/* 这个参数可以设置上下左右,同时样式可以分成多种。 */
border:10px;	可以添加上下左右(top/bottom/right/left/)
border-width:10px;	设置粗细
border-color:rgb(0,0,0);	设置颜色
border-radius:10px;	设置圆角
边框参数设置
	border-top			单独设置边框样式
	border-top-width	单独设置边框粗细
	border-top-color	单独设置边框颜色
	border-top-radius	单独设置圆角幅度
	

border:3px solid red;
样式参数设置
	solid 实线边框  	 dotted 点状边框    none 无边框   dashed 虚线 	double 双线
	groove 3D凹槽边框	ridge 3D垄状边框	inset 上光源3D	outset 下光源3D 

 高级颜色

颜色参数设置
	red/black/blue...  	可以直接写颜色
	rgb(2,2,2)			可以写rgb颜色数值
	#00FF00				可以写十六进制颜色信息

	
	高级颜色设置
线性渐变色:
/* 	x1:0, y1:0, x2:1, y2:0   决定方向 									*/
/*	stop: 0.4 gray    定义位置的颜色   把整条线分层10分,0.4的位置是gray颜色	*/
qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0 white, stop: 0.4 gray, stop:1 yellow)


辐射渐变:
/*	cx:0.7, cy:0.7  是圆心位置
	radius:0.5   是半径
	fx:0.5, fy:0.5  光源位置
	stop:0 red     位置的颜色	*/
qradialgradient(cx:0.7, cy:0.7, radius:0.5, fx:0.5, fy:0.5, stop:0 red,  stop:1 blue)


角度渐变:
/*	 cx:0.5, cy:0.5     圆心位置
	angle:90     起始角度
	stop:0 red    位置颜色	*/
qconicalgradient(cx:0.5, cy:0.5, angle:90, stop:0 red, stop:1 blue) 


后续我会制作qss模版,需要的可以在群里等待。。。

欢迎关注点赞支持。

‍PyQt5学习爱好群主群:732513891(已满)

PyQt5学习爱好群二群:937759168(已满)

PyQt5学习爱好群三群:757679170

欢迎进入我主页,学习交流Qt样式制作


Qt之样式表qss基础知识的评论 (共 条)

分享到微博请遵守国家法律