一、为标签和按钮添加背景图片
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_())
运行效果如下:

1659

被折叠的 条评论
为什么被折叠?



