def setPixData(self,data):
print(data) #this print the image file name correctly e.g asdfghj.jpg
img=QtGui.QImage(QtCore.QCoreApplication.applicationDirPath()+"/temp/"+data)
pix=QtGui.QPixmap.fromImage(img)
self.driver_ui.pix.setPixmap(pix)
這是從開發代碼運行它時正確加載圖像。 一旦我用cx_freeze凍結它並將其安裝到最終的目標目錄中,它不會加載圖像。即使圖像在指定的路徑中。即使它存在,QImage也不會加載圖像
我試過硬編碼到凍結版本的完整路徑,仍然沒有運氣。 我已經在上面的代碼的每一行放置了一個f.write()
,並且它們都運行沒有錯誤。 我想這個問題是從QImage
,因爲它isNull()
返回true,這可能是什麼問題,如果QImage
沒有被添加cx_freeze,它將確保拋出和異常,並不會在下一行運行f.write()
。 我迷失在這裏。
注意:這是一個Python GUI中的Windows GUI應用程序。
請始終使用'os.path.join()'構造路徑; 'os.path.join(QtCore.QCoreApplication.applicationDirPath(),'temp',data)'你的情況。不知道這是否可以解決您的問題,但例如,它可以避免Windows上帶有混合分隔符的大量問題。 –
謝謝,我剛剛實施,但仍然沒有運氣。 –
@MartijnPieters Qt使用「/」作爲通用目錄分隔符,與「/」用作URL中的路徑分隔符相同。如果您始終使用「/」作爲目錄分隔符,Qt會將您的路徑轉換爲符合底層操作系統。http://doc.qt.digia.com/qt/qdir.html – cgmb