Замостить окно можно так:
class MainWindow(QWidget):
window_height = 600
window_width = 600
def __init__(self):
super(QWidget, self).__init__()
self.setGeometry(100, 100, self.window_height, self.window_width)
oImage = QImage("image.jpg")
sImage = oImage.scaled(QSize(self.window_height, self.window_width))
palette = QPalette()
palette.setBrush(QPalette.Window, QBrush(sImage))
self.setPalette(palette)
Масштабировать фон с сохранение пропорций чуть сложнее:
class MainWindow(QWidget):
def __init__(self):
super(QWidget, self).__init__()
def resizeEvent(self, event):
palette = QPalette()
img = QImage('image.jpg')
scaled = img.scaled(self.size(), Qt.KeepAspectRatioByExpanding, transformMode = Qt.SmoothTransformation)
palette.setBrush(QPalette.Window, QBrush(scaled))
self.setPalette(palette)
А если сохранять пропорции не надо, то вместо KeepAspectRatioByExpanding надо передать IgnoreAspectRatio.