pyinstaller“无法解析样式表”

Posted

技术标签:

【中文标题】pyinstaller“无法解析样式表”【英文标题】:pyinstaller "could not parse stylesheet" 【发布时间】:2016-07-22 09:56:17 【问题描述】:

我正在使用 pyQt 和 pyInstaller 构建一个小程序。 我尝试将背景图片添加到我的 QMainWindow:

class pyPrimaMainWindow(QMainWindow):
    def __init__(self):
        ...do some stuff...
        self.setWindowIcon(QIcon(os.path.join(self.py_prima.resource_path(), "TH.ico"))) # <- this works
        self.setStyleSheet("QMainWindowborder-image: url(0);background-size:100%;".format(os.path.join(self.py_prima.resource_path(), "bg.png")))

resource_path() 方法如下所示:

def resource_path(self):
    """ Get absolute path to resource, works for dev and for PyInstaller """
    # PyInstaller creates a temp folder and stores path in _MEIPASS
    base_path = getattr(sys, '_MEIPASS', "C:/Users/Tobias/eclipse/workspace/PyPrima/data/")
    #         except Exception:
    #             base_path =

    print(base_path)
    return base_path

它是从 pyinstaller wiki 复制的,返回一个绝对路径并适用于其他图片/图标。 但是,如果我使用 pyInstaller 构建可执行文件,程序运行良好,但缺少背景图像。相反,控制台输出

"could not parse stylesheet of object ..."

如果我运行 python 文件,一切正常...

对此有什么想法吗?

谢谢!

【问题讨论】:

【参考方案1】:

我会回答我自己的问题,以防其他人偶然发现同样的问题。

文件分隔符错误... 修复它

bgpath = os.path.join(self.py_prima.resource_path(), "bg.png")
bgpath = bgpath.replace("\\", "/")
self.setStyleSheet("QMainWindowborder-image: url(0);background-size: 100%;".format(
        bgpath))

【讨论】:

以上是关于pyinstaller“无法解析样式表”的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 pip 安装 pyinstaller

PyInstaller 无法更改快捷方式图标

Pyinstaller“无法执行主要脚本”问题[重复]

PyInstaller Winerror3:系统无法找到指定的路径

pyinstaller打包在别的电脑上无法运行?

Windows无法访问Pyinstaller生成的exe文件