pyqt设置图标,设置窗口背景,并将背景平铺到整个窗口,随着窗口改变而改变

在用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_())

效果

pyqt设置图标,设置窗口背景,并将背景平铺到整个窗口,随着窗口改变而改变_第1张图片
pyqt设置图标,设置窗口背景,并将背景平铺到整个窗口,随着窗口改变而改变_第2张图片

可以看到,背景随着窗体大小改变而改变

你可能感兴趣的:(python)