Python 不要在widget.setStyleSheet中插入背景图片

Python 不要在widget.setStyleSheet中插入背景图片,python,qt,pyqt,background-image,stylesheet,Python,Qt,Pyqt,Background Image,Stylesheet,运行文件代码: from PyQt5 import QtCore, QtGui, QtWidgets import subprocess, re, shlex, json, test_fon_cod, os, sys, random, threading, time, glob, math, help, http.client, urllib.request, urllib.parse, urllib.error class Ui_Frame(QtWidgets.QMainWindow, t

运行文件代码:

from PyQt5 import QtCore, QtGui, QtWidgets
import subprocess, re, shlex, json, test_fon_cod, os, sys, random, threading, time, glob, math, help, http.client, urllib.request, urllib.parse, urllib.error


class Ui_Frame(QtWidgets.QMainWindow, test_fon_cod.Ui_test_fon):
    def __init__(self, parent=None):
        QtWidgets.QWidget.__init__(self, parent)
        self.setupUi(self)


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    window = Ui_Frame()
    window.show()
    sys.exit(app.exec_())
运行通过pyuic5.bat从“ui”文件转换获得的文件:

    from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_test_fon(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(541, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.widget = QtWidgets.QWidget(self.centralwidget)
        self.widget.setGeometry(QtCore.QRect(18, 21, 190, 154))
        self.widget.setStyleSheet("border-image: url(E:\image\fon.png);")
        self.widget.setObjectName("widget")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 541, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
他试图以不同的方式加载图片,而不是如何加载。
开始时,没有什么可咒骂的,但也不会加载更改模块的行
test\u fon\u cod.py

self.widget.setStyleSheet("border-image: url(E:\image\fon.png);")

见:

文件系统从根目录开始,在Unix上用正斜杠表示,在Windows上用驱动器号表示

>>> from pathlib import Path
>>> pathFile = Path("pythonw.exe").resolve()
>>> 
>>> pathFile
WindowsPath('E:/Python/pythonw.exe')
>>> 
main.py

from PyQt5 import QtCore, QtGui, QtWidgets
import test_fon_cod

class Ui_Frame(QtWidgets.QMainWindow, test_fon_cod.Ui_test_fon):
    def __init__(self, parent=None):
        QtWidgets.QMainWindow.__init__(self, parent)
        self.setupUi(self)

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    window = Ui_Frame()
    window.show()
    sys.exit(app.exec_())
测试方(cod.py)

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_test_fon(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(541, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.widget = QtWidgets.QWidget(self.centralwidget)
        self.widget.setGeometry(QtCore.QRect(18, 21, 190, 154))

        self.widget.setStyleSheet("border-image: url(E:/_Qt/img/qt-logo.png);")  # <----
        self.widget.setObjectName("widget")
        MainWindow.setCentralWidget(self.centralwidget)

        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 541, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
从PyQt5导入QtCore、QtGui、qtwidget
类用户界面测试(对象):
def设置UI(自我,主窗口):
MainWindow.setObjectName(“MainWindow”)
主窗口。调整大小(541600)
self.centralwidget=qtwidts.QWidget(主窗口)
self.centralwidget.setObjectName(“centralwidget”)
self.widget=qtwidts.QWidget(self.centralwidget)
self.widget.setGeometry(QtCore.QRect(18,21,190,154))

self.widget.setStyleSheet(“边框图像:url(E:/Qt/img/Qt logo.png);”)#它没有help@S.Nick将
qtwidts.QWidget.\uuuu init\uuuu(self,parent)
更改为
qtwidts.QMainWindow.\uuuuu init\uuuu(self,parent)
@eyllanscyou@S.Nick我建议你解释一下你的解决方案,如果一个响应没有表明任何东西闻起来像是不合格的,请尝试它不是您的声誉良好的用户可以提供的答案,阅读:)例如,您应该说明为什么使用
E:/image/fon.png
E:\image\fon.png
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_test_fon(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(541, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.widget = QtWidgets.QWidget(self.centralwidget)
        self.widget.setGeometry(QtCore.QRect(18, 21, 190, 154))

        self.widget.setStyleSheet("border-image: url(E:/_Qt/img/qt-logo.png);")  # <----
        self.widget.setObjectName("widget")
        MainWindow.setCentralWidget(self.centralwidget)

        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 541, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))