【发布时间】:2020-06-18 07:15:58
【问题描述】:
我正在尝试将背景图像添加到我的主窗口,但我无法使其正常工作。
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)
我不知道是整个窗口变得迟钝还是真的发生了什么,但下图是使用上面的代码截取的窗口的一部分,你可以看到它全黑,滑块显示所有它之前的位置,无论如何有点滞后。
我也尝试过 setStyleSheet,但我不知道是我的语法错误还是这样做的错误方式。有谁知道正确的做法?
编辑
这是我当前的窗口:
这是我试图作为当前窗口背景的图片,名为“table.png”的图片:
这是我正在尝试做的事情的可视化,这是用油漆制作的,因为我不知道如何正确地做:
如果我使用其他主题的代码,这就是我得到的:
【问题讨论】:
-
“其余的小部件变得迟钝”是什么意思?另外,您能否向我们展示您是如何尝试设置样式表(包括其内容)的,即使它们不起作用?
-
添加了一张图片和我对 laggy 的意思的简短描述。我已经尝试了几个不同版本的 QMainWindow.setStyleSheet(self, 'table.png') 但它与那行代码并没有任何区别。背景仍然是没有它的白色。
-
@bjorstig 1) 您可以提供 table.png,2) 显示您想要获取的图片,3) 提供 minimal reproducible example
-
@eyllanesc 我已经编辑了问题并添加了一些图片
标签: python pyqt pyqt5 qmainwindow