在用pyqt做窗体时会经常设置图标和背景来美化窗体,下面介绍一种设置图标和背景的简单方法
调用QtWidgets.QWidget的setWindowIcon方法,该方法需要传入一个QIcon的实例:
self.setWindowIcon(QIcon('')) #在''中输入图片路径
在窗体类中写一个paintEvent(self, event)的方法,方法名和参数不能修改,原因是父类(QtWidgets.QWidget)的构造函数中调用了paintEvent这个函数,当子类(Ui_Form)用super调用父类构造函数时,就会调用paintEvent,paintEvent如下:
def paintEvent(self, event):
painter = QPainter(self)
pixmap = QPixmap("") ## ""中输入图片路径
# 绘制窗口背景,平铺到整个窗口,随着窗口改变而改变
painter.drawPixmap(self.rect(), pixmap)
from PyQt5 import QtWidgets
from PyQt5.QtGui import QIcon, QPixmap, QPainter
class Ui_Form(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Form")
self.resize(468, 352)
self.setWindowIcon(QIcon('./image/icon.ico'))
def paintEvent(self, event):
painter = QPainter(self)
pixmap = QPixmap("./image/background.png")
# 绘制窗口背景,平铺到整个窗口,随着窗口改变而改变
painter.drawPixmap(self.rect(), pixmap)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
ui = Ui_Form()
ui.show()
sys.exit(app.exec_())
可以看到,背景随着窗体大小改变而改变