PyQt5之设置样式

一、为标签和按钮添加背景图片

import sys
from PyQt5 import QtCore
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class Demo(QWidget):
    def __init__(self):
        super().__init__()
        self.setGeometry(500,300,300,300)
        label = QLabel(self)
        label.setToolTip('这是一个标签')
        #为标签添加背景图片
        label.setStyleSheet('QLabel{border-image:url(python.jpg);}')
        #设置标签大小
        label.setFixedWidth(128)
        label.setFixedHeight(128)

        btn = QPushButton(self)
        #为按钮添加背景图片
        btn.setStyleSheet('QPushButton{background-image:url("python.jpg");}')
        #设置按钮大小
        btn.setMaximumSize(128,128)
        btn.setMinimumSize(128,128)

        layout = QVBoxLayout(self)
        layout.addWidget(label)
        layout.addWidget(btn)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    form = Demo()
    form.show()
    sys.exit(app.exec_())

运行效果如下:

在这里插入图片描述

二、缩放图片

import sys
from PyQt5 import QtCore
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class Demo(QWidget):
    def __init__(self):
        super().__init__()
        self.setGeometry(500,300,300,300)
        self.setWindowTitle('缩放图片')
        img = QImage('python.jpg')
        label = QLabel(self)
        # 设置标签大小
        label.setFixedWidth(128)
        label.setFixedHeight(128)
        #缩放图片,以固定大小显示
        result = img.scaled(label.width(),label.height(),Qt.IgnoreAspectRatio,Qt.SmoothTransformation)
        #在标签上显示图片
        label.setPixmap(QPixmap.fromImage(result))

if __name__ == "__main__":
    app = QApplication(sys.argv)
    form = Demo()
    form.show()
    sys.exit(app.exec_())

运行效果如下:

在这里插入图片描述
在这里插入图片描述

三、设置窗口透明

win = QMainWindow()
#0表示完全透明,1表示不透明,值越小,透明度越大
win.setWindowOpacity(0.5)

四、加载QSS

通常定义一个QSS文件,然后编写各种控件的样式,最后使用QApplication或QMainWindow来加载样式,这样就可以让整个应用程序共享同一种样式。

编写QSS:

QMainWindow{
	border-image:url(python.jpg);
}

加载QSS:

import sys
from PyQt5 import QtCore
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class CommonHelper:
    def __init__(self):
        pass
    @staticmethod
    def readQSS(style):
        with open(style,'r') as f:
            return f.read()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    form = QMainWindow()
    #换肤时进行全局修改,只需修改不同的QSS文件即可
    style = CommonHelper.readQSS('style.qss')
    form.setStyleSheet(style)
    form.show()
    sys.exit(app.exec_())

运行效果如下:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值