2014-03-19 36 views
5

我正在使用python項目,而且我的.py文件是由.qrc文件編譯的.py文件。首先,讓我簡單地解釋一下我的項目。從.qrc文件(使用pyside-rcc)編譯的.py文件不起作用

我在QtDesigner中創建了我的項目GUI,並在GUI中使用該圖像。然後,我使用pyside-uic從.ui文件生成.py文件,並使用pyside-rcc從.qrc文件生成.py文件。問題是當我使用.py文件(一個圖像文件)時,圖像不會顯示在我的GUI中。

有人知道如何解決這個問題嗎?

謝謝你的所有答案。 :)

Ps。我使用PySide作爲我的GUI語言。

+0

你能提供關於你的代碼和qrc文件的簡單總結嗎? – cengizkrbck

回答

7

您是否真的將資源添加到您的GUI項目中?

從頭開始,這裏是如何做到這一點:

在Qt Designer中,選擇查看>資源瀏覽器。然後,在資源瀏覽器中,單擊編輯資源按鈕。從那裏,你可以創建一個新的資源文件,或打開一個現有的文件。重要的是資源文件必須能夠使用相對路徑訪問資源(例如圖像文件)。這意味着它們必須與資源文件或其子目錄之一在同一目錄中。

創建資源文件後,使用右側窗格下方的按鈕添加前綴(例如「圖像」),然後添加圖像(或其他),最後單擊確定。

現在,當你想添加一個像素圖到一個標籤,只要確保你從新資源中選擇圖像,而不是磁盤上的文件。

最後的步驟是使用pyside-uic重新生成GUI模塊,並使用pyside-rcc生成資源模塊。當你這樣做,確保資源模塊在同一目錄作爲GUI模塊保存爲「resource_rc.py」:

pyside-uic -o widget.py widget.ui 
    pyside-rcc -o resource_rc.py resource.qrc 

(PS:如果你在你的項目中使用的包,你應該使用--from-imports選項與pyside-uic獲得相對的導入)。

+0

我完全按照這些步驟進行,但pyside-rcc導致 dyld:Library未加載:@ rpath/lib/QtCore.framework/Versions/4/QtCore 引用自:/ Users/jmason86/Library/Enthought/Canopy_64bit/User/bin/pyside-rcc 原因:圖像未找到 中止陷阱:6 所有內容都在一個目錄中。我也嘗試將圖像移動到名爲圖像的子目錄中,其他所有內容都相同。沒有骰子。 –

+0

@JamesPMason。你的問題與我給出的指示無關。你的pyside安裝顯然有問題(但我不知道具體是什麼)。 – ekhumoro

+0

你是對的!這些說明完美工作,一旦我做了這個奇怪的修復:http://stackoverflow.com/questions/28480902/pyside-rcc-dyld-library-not-loaded/28502438 –