QMainwindow PyQt5中的背景图片

问题描述 投票:0回答:1

我正在尝试在主窗口中获取背景图像,但无法使其正常工作。

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QLabel
from PyQt5.QtGui import QIcon
from PyQt5 import QtWidgets
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtSvg import *
from PyQt5.QtWidgets import *
from abc import abstractmethod


class App(QMainWindow):

    def __init__(self, parent=None):
        super(App, self).__init__(parent=parent)
        self.title = 'Title'
        self.left = 500
        self.top = 500
        self.width = 440
        self.height = 280
        self.initUI()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        # ...

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    #view = TableScene(ex)
    ex.show()
    sys.exit(app.exec_())

我尝试过各种方法,但没有一种能正常工作。我发现以下代码是另一个主题的解决方案,但这只是给我一个黑色的背景,其余小部件都变得很落后。

     oImage = QImage("table.png")
     sImage = oImage.scaled(QSize(440, 280))
     palette = QPalette()
     palette.setBrush(QPalette.Window, QBrush(sImage))
     self.setPalette(palette)

我不知道整个窗口是否变慢或发生了什么实际情况,但是下面的图片是使用上面的代码的部分窗口的屏幕截图,您可以看到它变黑了,滑块显示了所有以前的位置,无论如何都有些滞后。

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9DVXo0MC5wbmcifQ==” alt =“延迟”版本的图像'>

我也尝试过setStyleSheet,但我不知道这是我的语法错误还是执行方法错误。有谁知道正确的做事方法吗?

EDIT

这是我当前的窗口:

“当前视图”

这是我要实现为当前窗口背景的图片,该图片称为“ table.png”:

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9HVG5Tdy5qcGcifQ==” alt =“我想要作为背景的图片”>

这是我要执行的操作的可视化,由于我不知道该如何正确执行,因此这是在绘画中完成的:

“所需的视图”“>

这是我使用其他主题的代码所得到的:

“不正确的视图”

我正在尝试将背景图像添加到主窗口,但无法使其正常工作。从PyQt5.QtWidgets导入sys从PyQt5.QtGui导入QApplication,QWidget,QMainWindow,QLabel导入...

python pyqt pyqt5 qmainwindow
1个回答
0
投票

出现黑色背景的可能原因之一是QImage为空。 QImage为空是因为图像无效或图像路径不正确。在这种情况下,我认为是第二种情况,因为OP使用的是容易出错的相对路径。解决方案是使用脚本信息(例如其位置)构建绝对路径:

© www.soinside.com 2019 - 2024. All rights reserved.