在用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_())
效果
可以看到,背景隨着窗體大小改變而改變