【PyQt5】2、QSS样式表(setStyleSheet)

引言

        我一个朋友说他在写PyQt5的时候,需要给一个QLable染成红色,想着和Tkinter一样用config(bg="red“)来做,结果根本没有。聪明人已经知道是QSS了,所以今天我们就给他上一节QSS课吧!

正文

基本格式

        

widget.setStyleSheet(stylesheet:str)

        就是这样,里面的stylesheet就是QSS样式表,后面我们要讲的也是他。

样式表格式

普通

"background-color:#ff0000;"

        这个样式表就是引言里我朋友需要的。分为三部分:头、尾、分号,头和尾之间要用冒号隔开。头就是对尾的诠释,这里的头是background-color,意思就是背景颜色。这里的尾是#ff0000,是红色的十六进制,所以尾表达的就是背景颜色是什么。最后一个是分号,别看这里只有一组,但是也要在结尾加分号,不然就报错!

多组

"background-color:#ff0000;border:1px solid black;"

        这个样式表意思就是:背景颜色红色,边框(border)1像素(1px)、实线(solid)、黑色(black)。也挺简单的,就是把两个单组的拼在一起。不用多说了。

通配符选择器

window.setStyleSheet("*{background-color:red;}")

        注意这里是把window这个窗口里所有widget统统变红。样式表的外围增加了一个*{}.

        *是一个通配符选择器,意思就是把增加样式表的对象的所有childrenWidget都修改。

类型选择器

windou.setStyleSheet(QLable{background-color:red;})

        这里是把window里所有QLable和它的childrenWidget变红。

        相信你到这里已经明白了,选择器后面都是有{}的。

名称选择器

lbl = QLable(window)
lbl.setObjectName("lable")
window.setStyleSheet("#lable{background-color:red}")

        我们先是创建了一个QLable,归属于window,然后给它setObjectName,也就是命名,命名为lable,最后给window设置样式表,意思是:叫lable的widget全部变红

多选择器

lbl = QLable(window)
lbl.setObjectName("lable")
btn = QPushButton(window)
window.setStyleSheet("#lable,QPushButton{background-color:red}")

        差不多一目了然了吧?意思就是:叫lable的和所有QPushButton手下的,全部变红

.qss文件

        这么多样式表,如果全部setStyleSheet太麻烦了,这时就可以创建.qss文件了。

        假设有一个.qss文件,名为style.qss,内容如下:

*{
    background-color:red;
}

QButton{
    border:1px solid yellow;
}

        还有一个a.py和style.qss在一个文件夹里,那么只要你在a.py里写入这几行代码,就能自动执行style.qss的所有内容:

with open('style.qss', 'r', encoding='utf-8') as f:
    result = f.read()
    window.setStyleSheet(result)

全文完

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值