gpt4 book ai didi

python - pyQT4 py3无法在QFrame背景中显示图像

转载 作者:太空宇宙 更新时间:2023-11-03 18:09:46 25 4
gpt4 key购买 nike

我有一段时间试图简单地在 QFrame 的背景中显示图像,但根本做不到。我可以在网上看到大量示例,但似乎没有一个适用于我的代码,我不明白为什么:

import sys, random
from PyQt4 import QtCore, QtGui
from PyQt4.QtGui import QPalette, QBrush, QPixmap

class MainWin(QtGui.QMainWindow):
def __init__(self):
super(MainWin, self).__init__()
self.initUI()

def initUI(self):
#central widget
self.theboard = Board(self)
self.setCentralWidget(self.theboard)
self.resize(360, 760)
self.setWindowTitle('Name')
self.show()

class Board(QtGui.QFrame):
def __init__(self, parent):
super(Board, self).__init__(parent)
self.initBoard()

def initBoard(self):
print("ddd")
frame = Board
palette = QPalette(self)
palette.setBrush(QPalette.Background,QBrush(QPixmap("ImageTest.jpg")))
frame.setPalette(palette)

def main():
app = QtGui.QApplication([])
mw = MainWin()
sys.exit(app.exec_())

if __name__ == '__main__':

main()

将返回:

TypeError: QWidget.setPalette(QPalette): first argument of unbound method must have type 'QWidget'

如果我不将 QFrame 传递到变量中并这样做:

palette = QPalette(self)
palette.setBrush(QPalette.Background,QBrush(QPixmap("ImageTest.jpg")))
self.setPalette(palette)

没有更多错误,但我的背景仍然是空白。如果我只是尝试填充颜色而不是图像,也会发生同样的情况。

最佳答案

除非它是顶级小部件,否则您需要设置 autoFillBackground属性来让它工作:

    def initBoard(self):
self.setAutoFillBackground(True)
palette = QPalette(self)
palette.setBrush(QPalette.Background, QBrush(QPixmap("ImageTest.jpg")))
self.setPalette(palette)

或者,更简单的是,使用 style-sheet设置背景图片:

    def initBoard(self):
self.setStyleSheet('background-image: url("ImageTest.jpg")')

关于python - pyQT4 py3无法在QFrame背景中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26217977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com