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

效果

在這裏插入圖片描述
在這裏插入圖片描述

可以看到,背景隨着窗體大小改變而改變

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章