我無法理解在使用cx_freeze構建應用程序後,爲什麼我的QGraphicsPixmapItem沒有顯示出來。是否有任何與該類和cx_freeze有關的已知問題,或者我是否缺少一些使用cx_freeze的設置?下面是創建和顯示QGraphicsPixmapItem的部分,之後是我的cx_freeze setup.py:QGraphicsPixmapItem在使用cx_freeze後不會出現
def partNo_changed(self):
self.scene.removeItem(self.previewItem)
partNumber = self.ui.partNo.text()
fileLocation = 'drawings\\FULL\\%s.svg' % partNumber
print(fileLocation)
pixmap = QtGui.QPixmap(fileLocation)
self.previewItem = QtGui.QGraphicsPixmapItem(pixmap)
self.previewItem.setPos(0, 0)
self.scene.addItem(self.previewItem)
self.ui.svgPreview.centerOn(self.previewItem)
這裏是setup.py腳本:
from cx_Freeze import setup, Executable
files = ['drawings\\FULL']
setup(
name = 'DBManager',
version = '1.0',
description = 'Makes and maintains the .csv database files.',
author = 'Brock Seabaugh',
options = {'build_exe': {'include_files':files, 'bin_path_includes':files}},
executables = [Executable('dbManager_publicDB.py')])
其他一切的工作程序,這是唯一不起作用的(它運作,如果我只是運行.py腳本,但不是當我運行exe時)。當我構建或運行該exe文件時,我沒有收到任何錯誤。如果有人能夠幫助這一點,這將是偉大的。我正在使用Python v3.1和cx_freeze v4.2.3和PyQt v4。
還有一個問題需要注意,我在另一個線程中回答了問題,但仍然涉及到該主題。如果你打算把這個可執行文件放在另一臺沒有安裝PyQt4的計算機上(很明顯的一點),你還必須將PyQt的圖像格式.dll文件複製到應用程序文件夾中。你需要做的就是從你的exe中獲得dll文件的相對地址,如下所示:'PyQt4/plugins/imageformats/qsvg4.dll'。然後你必須編輯你的qt.conf文件中的前綴爲PyQt4其他的東西。一旦你這樣做,你應該能夠將它移動到任何與PyQt4(無)的Windows comp。 – 2011-05-06 20:53:16