0

我用 gui 编写了一个小应用程序来分析 xml 文件。我有 2 个 .py 文件,其中 1 个是 GUI,第二个是 xml。我的问题是我设置的图标以及我使用 QMovie 显示的 gif 没有出现在任何机器上,但我的开发机器上。其他机器没有安装 PyQt 或 Python。他们正在使用我从 Python 复制到网络驱动器上的安装文件夹。我刚刚复制了机器 system32 文件夹中的 python32.dll 并且该应用程序可以工作......除了图标。

这就是我设置图标和引用 gif 的方式:

    self.setWindowIcon(QtGui.QIcon("grabb.ico"))
    --------other code---------
    self.movie = QMovie("load.gif", QByteArray(), self)
    self.movie.setCacheMode(QMovie.CacheAll)
    self.movie.setSpeed(100)
    self.movie_screen.setMovie(self.movie)
    self.movie.start()

该文件与 py 位于同一目录中,因此这应该可以工作。我也尝试过绝对路径,但这并没有给我更好的结果。

现在我在堆栈上读到这可以通过使用资源系统来解决。因此,我使用设计器创建了一个资源文件,然后使用 pyrcc4 将其编译为 .py(使用 python 3 的参数)。现在我正在参考这样的图像:

     self.setWindowIcon(QtGui.QIcon(":icon/grabber.ico"))
    --------other code---------
    self.movie = QMovie(":loader/load.gif", QByteArray(), self)
    self.movie.setCacheMode(QMovie.CacheAll)
    self.movie.setSpeed(100)
    self.movie_screen.setMovie(self.movie)
    self.movie.start()

这在我的机器上又可以正常工作,但在其他任何地方都没有。

关于为什么只有 ma 机器显示图标的任何想法?我没有使用 py2exe 或类似的东西!

4

1 回答 1

0

I too came across the same situation.

One approach is to set the paths in qt.config file and place this in the location of your executable.

I tested this with Python 2.6, and its working fine without any issue.

You said that you have shared your python installation which has PyQt4 init.

Lets say you python share path is \\somesystem\Python26

Yo will find a qt.config file in \\somesystem\Python26\PyQt4. Take it and replace the below lines in qt.conf

[Paths]
Prefix = //somesystem/Python26/PyQt4
Binaries = //somesystem/Python26/PyQt4
于 2013-01-28T10:56:45.957 回答