0

xml ファイルを分析するための GUI を備えた小さなアプリを作成しました。2 つの .py ファイルがあり、1 つは GUI で、2 つ目は 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 machine だけがアイコンを表示する理由についてのアイデアはありますか? 私はpy2exeなどを使用していません!

4

1 に答える 1

0

私も同じ状況に遭遇しました。

1 つの方法は、qt.config ファイルにパスを設定し、これを実行可能ファイルの場所に配置することです。

これを Python 2.6 でテストしたところ、問題なく正常に動作しました。

あなたは、PyQt4 init を含む python インストールを共有したと言いました。

あなたのpython共有パスが\\somesystem\Python26

に qt.config ファイルがあります\\somesystem\Python26\PyQt4。それを取得して、qt.conf の以下の行を置き換えます

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