2012-03-11 90 views
3

pyqt有一些問題。 我不得不示例文件:qrc文件+ ui文件不起作用

  • login.ui
  • login.qrc

所以,login.ui,與Qt設計maked使用QRC文件的一些資源。 qrc有一些在ui文件中創建的按鈕的圖像。

qrc文件正在使用一個目錄圖像,其中的按鈕圖像在哪裏。 它只適用於qt設計師。如果我在QtCreator的qt設計器中打開,使用C++, ,它會顯示帶有相應圖標的按鈕。

我的Python文件 「Login.py」 是這樣的:

from PyQt4 import QtGui, uic 
import sys 

class Form(QtGui.QDialog): 

    def __init__(self, parent = None): 
     QtGui.QDialog.__init__(self, parent) 
     uic.loadUi("login.ui", self) 

if __name__ == "__main__":  
    app = QtGui.QApplication(sys.argv)  
    ui = Form() 
    ui.show() 
    sys.exit(app.exec_()) 

它導入UI文件。 現在的問題:

當我運行該程序時,圖標不顯示。 這些文件安裝在正確的文件夾中。 但是,當我運行該應用程序,圖標不會出現。

我應該在我的python文件中進行一些配置嗎? 我錯過了什麼嗎?

謝謝你們。 ^^

+0

我假裝只與用戶的qrc文件一起工作。還有一個導入ui文件的python文件。 – 2012-03-11 17:13:32

+0

如果你的意思是你想直接加載'qrc'文件(而不是使用'pyrcc4'),我不認爲這是可能的。 – ekhumoro 2012-03-11 18:18:00

回答

4

我認爲你需要將.qrc文件編譯爲一個Python模塊,並將它導入,以便將圖標加載到內存中。

http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/resources.html

pyrcc4是PyQt的等效Qt的RCC效用和 完全相同的方式被使用。 pyrcc4讀取.qrc文件和資源 文件,並生成一個Python模塊,該模塊僅需由應用程序導入編輯 ,以使這些資源可用 就好像它們是原始文件一樣。

+0

好的!但是,我可以使用ui文件?在這種情況下使用uic.loadUi? – 2012-03-11 19:47:07

+0

是的,你應該可以像這樣使用它。如果有疑問 - 將.ui編譯爲.py並使用表單類。在編譯的文件中,你會看到形式爲'self.setWindowIcon(QtGui.QIcon(':/ leaf-plant.png')''的資源引用。':/ icon.png'形式的路徑指的是加載的資源,當你導入.qrc文件時加載.py文件(你可以打開它並學習) – warvariuc 2012-03-11 19:51:05

+0

非常好!這將會起作用。非常感謝。) – 2012-03-11 19:52:16