2016-07-18 5 views
0

のサイズを変更していない私が使用していたコードです:背景画像がショーを行いPyQtはメインウィンドウの背景には、ここで

palette = QtGui.QPalette() 
myPixmap = QtGui.QPixmap('test1.jpg') 
myScaledPixmap = myPixmap.scaled(self.size(), QtCore.Qt.KeepAspectRatio, transformMode = QtCore.Qt.SmoothTransformation) 
palette.setBrush(QtGui.QPalette.Window, myScaledPixmap) 
self.setPalette(palette) 

メインウィンドウのサイズを変更したときに、それはしかし、サイズは変更されません。 size()とframeSize()の両方を試しました。背景画像のサイズを変更するにはどうしたらいいですか?

+0

このコードは、ウィンドウが 'resizeEvent(resizeEvent)'を呼び出すときに実行されますか? – Ceppo93

答えて

1

この行:あなたはドキュメントhttp://pyqt.sourceforge.net/Docs/PyQt4/qpalette.html#setBrush-2を見れば2番目の引数がないQPixmapの

次QBrush、でなければなりません

palette.setBrush(QtGui.QPalette.Window, QtGui.QBrush(myScaledPixmap)) 

palette.setBrush(QtGui.QPalette.Window, myScaledPixmap) 

は、このようにする必要がありますコードは実際の例です:

from PyQt4 import QtGui, QtCore 

class MyWin(QtGui.QWidget): 

    def resizeEvent(self, event): 
     palette = QtGui.QPalette() 
     myPixmap = QtGui.QPixmap('test1.jpg') 
     myScaledPixmap = myPixmap.scaled(self.size(), QtCore.Qt.KeepAspectRatio, transformMode = QtCore.Qt.SmoothTransformation) 
     palette.setBrush(QtGui.QPalette.Window, QtGui.QBrush(myScaledPixmap)) 
     self.setPalette(palette) 


app = QtGui.QApplication([]) 

win = MyWin() 
win.show() 

app.exec_() 
関連する問題