PyQt/PySide - 图标显示

use*_*057 9 python pyqt py2exe pyqt4 pyside

我有一个PySide应用程序,它有一个MainWindow(一个QMainWindow实例)的图标.当我正常运行文件时,图标是可见的,一切都很好但是当我创建一个exe时py2exe,图标不会出现.这种情况cx_freeze也会发生(所以我不认为这个问题py2exe).

该应用程序设计使用QtDesigner并转换为python与pyside-uic.我尝试使用图标作为文件和资源(qrc文件),两者似乎都不起作用.

任何帮助或指示将不胜感激.

谢谢.

Ger*_*ald 4

只要您不尝试将 Qt dll 捆绑到library.zip 或exe 中,kochelmonster 的解决方案就可以工作。如果将插件放在应用程序目录的根目录中,则也不需要设置库路径。

我仍然想捆绑其他所有内容,因此我排除了 qt dll 并手动添加它们。我的 setup.py 看起来像这样:

from os.path import join

_PYSIDEDIR = r'C:\Python27\Lib\site-packages\PySide'
data_files =[('imageformats',[join(_PYSIDEDIR,'plugins\imageformats\qico4.dll')]),
              ('.',[join(_PYSIDEDIR,'shiboken-python2.7.dll'),
                join(_PYSIDEDIR,'QtCore4.dll'),
                join(_PYSIDEDIR,'QtGui4.dll')])
              ]
setup(
    data_files=data_files,
    options={
        "py2exe":{
            "dll_excludes":['shiboken-python2.7.dll','QtCore4.dll','QtGui4.dll'],
            "bundle_files": 2
            ...
        }
    }
    ...
)
Run Code Online (Sandbox Code Playgroud)

如果您的项目使用其他 Qt dll,您还必须排除并手动添加它们。如果您需要加载 .ico 图像以外的其他内容,您还需要添加正确的插件。