pyinstaller"无法解析样式表"

时间:2016-07-22 09:56:17

标签: python-3.x pyinstaller pyqt5

我正在使用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("QMainWindow{{border-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复制,返回一个absoulte路径并适用于其他图片/图标。 但是,如果我使用pyInstaller构建可执行文件,则程序运行良好,但缺少背景图像。相反,控制台输出

"could not parse stylesheet of object ..."

如果我运行python文件,它可以正常工作......

有关于此的任何想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

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

fileseparators错了...... 用

修复它
bgpath = os.path.join(self.py_prima.resource_path(), "bg.png")
bgpath = bgpath.replace("\\", "/")
self.setStyleSheet("QMainWindow{{border-image: url({0});background-size: 100%;}}".format(
        bgpath))