2012-07-13 42 views
0

我用gui編寫了一個小應用程序來分析xml文件。我有2個.py文件,其中1是GUI,第二個是xml。 我的問題是,我設置的圖標,以及我使用QMovie顯示的gif,都沒有顯示在任何機器上,而是我的開發機器上。 其他機器沒有安裝PyQt或Python。他們正在使用我從Python複製到網絡驅動器上的安裝文件夾。我剛剛複製python32.dll在機器system32文件夾和應用程序工作...除了圖標。PyQt v4.8.2 + Python 3 ...只在開發機器上顯示的圖標

這就是我如何設置的圖標和引用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() 

這再次在我的機器上正常工作,但沒有其他地方。

任何想法爲什麼只有馬機顯示圖標? 我沒有使用py2exe或類似!

+0

好的問題解決了。 我現在使用cx_freeze來部署它,我應該首先完成它。 圖標工作,而且啓動速度更快,因爲它不需要通過網絡驅動器加載所有內容。 cx_freeze一路! – pypat 2012-07-13 07:35:03

回答

0

我也遇到過同樣的情況。

一種方法是在qt.config文件中設置路徑並將其放置在可執行文件的位置。

我測試了這個與Python 2.6,它的工作正常沒有任何問題。

你說你已經共享你的PyQt4 init的python安裝。

比方說,你蟒蛇共享路徑\\somesystem\Python26

呦會發現一個qt.config文件中\\somesystem\Python26\PyQt4。取下它並替換qt.conf中的以下行

[Paths] 
Prefix = //somesystem/Python26/PyQt4 
Binaries = //somesystem/Python26/PyQt4 
相關問題