繁体   English   中英

PyQt MainWindow背景没有调整大小

[英]PyQt MainWindow background is not resizing

这是我正在使用的代码:

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)

确实显示了背景图像,但是当MainWindow调整大小时,它没有调整大小。 我已经尝试过size()和frameSize()。 如何解决此问题,以便调整背景图像的大小?

这行:

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

应该是这样的:

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

如果您查看文档http://pyqt.sourceforge.net/Docs/PyQt4/qpalette.html#setBrush-2,则第二个参数必须是QBrush,而不是QPixmap

以下代码是一个有效的示例:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM