使用PyQt5添加背景图片

时间:2020-05-27 12:21:33

标签: python pyqt pyqt5

我正在尝试使用先前问题的答案来添加背景。

不幸的是,它们无法正常工作并返回错误,无论是样式表还是=符号,还是““”。

我认为这可能是我的图片位置吗?是否可能需要一些特殊的存储图像或其他我想念的东西?

我已经显示了该代码的编辑后版本。

谢谢

import sys
from PyQt5.QtWidgets import QApplication,  QWidget,  QLabel, QMainWindow, QPushButton, QAction
from PyQt5.QtGui import QIcon, QPixmap
from PyQt5.QtCore import pyqtSlot
import os
os.chdir(r'C:\Users\Paul Hannell\python_files')

class App(QMainWindow):      # Opening Window

    def __init__(self):
        super().__init__()
        self.title = "Timelord Timer PyQt5"
        self.left = 70
        self.top = 100
        self.width = 1170
        self.height = 740
        self.initUI()


    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)
        self.setWindowIcon(QIcon(r'C:\Users\Paul Hannell\python_files\Timelord.ico'))
        self.statusBar().showMessage('Message in Status Bar')
        label=QLabel(self)

        ############################
        # Background Image

        self.centralwidget = QWidget()
        self.setCentralWidget(self.centralwidget)
        lay = QHBoxLayout(self.centralwidget)

stylesheet = '''
    MainWindow {
        background-image: url(r'C:\Users\Paul Hannell\python_files\Running_Around4.png');
        background-repeat: no-repeat;
        background-position: center;
    }
'''

        #####################################

mainMenu = self.menuBar()
fileMenu = mainMenu.addMenu('File')
settingsMenu = mainMenu.addMenu('Settings')
resultsMenu = mainMenu.addMenu('Results')
reportsMenu = mainMenu.addMenu('Reports')
infoMenu = mainMenu.addMenu('Info')

newButton=QAction('New', self)
newButton.setStatusTip('New Race')
        #newButton.triggered.connect(self.create)    #This open new event options
fileMenu.addAction(newButton)

openButton = QAction('Open' , self)
openButton.setStatusTip('Open File')
        #openButton.triggered.connect(self.open)  # This will open existing
fileMenu.addAction(openButton)

deleteButton=QAction('Delete', self)
deleteButton.setStatusTip('Delete Race')
        #deleteButton.triggered.connect(self.create)    #This delete existing event.
fileMenu.addAction(deleteButton)

exitButton=QAction('Exit', self)
exitButton.setStatusTip('Exit application')
exitButton.triggered.connect(self.close)
fileMenu.addAction(exitButton)



self.show()


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

1 个答案:

答案 0 :(得分:0)

您的代码缩进严重(而且时间太长),因此很难说出来,但是我看到了几个问题:

  • 应该在样式表中为+-------------------+ |startDate | +-------------------+ |2018-04-07 07:07:17| |2018-04-07 07:32:27| |2018-04-07 08:36:44| |2018-04-07 08:38:00| |2018-04-07 08:39:29| |2018-04-08 01:43:08| |2018-04-08 01:43:55| |2018-04-09 07:52:31| |2018-04-09 07:52:42| +-------------------+ (您缺少#MainWindow
  • 您需要使用以下名称来命名应用:#
  • 您需要在某个时候使用self.setObjectName('MainWindow')
  • 该网址需要修正:既不引号也不setStyleSheet;只是文件名(也许文件名中的空格需要转义,您可以尝试使用它)

例如,此方法有效:

'r'