2013-04-07 29 views
13

リソースファイルをインポートできません。私はサルスタジオでpyqt4を使用しており、私はpng画像をインポートしようとしています。私はPYQT4 - プログラムにqrcファイルをコンパイルしてインポートするにはどうすればいいですか?

ImportError: No module named icon_rc

のようなインポートエラーを取得するプログラムを実行すると、私はpyrcc4を使用して、それをコンパイルする必要がありますが、私はこれを行う方法を理解していないことを知っている誰も助けてくださいすることができます。リソースファイルをコンパイルしてインポートする方法を完全に説明した回答があれば、非常に役に立ちます。本当にここに説明するのは多くはありません

答えて

26

オープンCMD(またはの* nixの端子)と、それはファイルを正常にコンパイルし、私は私のプロジェクトにPYファイルをインポートし、問題なくそれを実行することができました

pyrcc4 -py3 F:\computing\Payrollv22\icon.qrc -o icon_rc.py 

を実行します。

+3

を持っていること'-py3'スイッチは、Python 3.xを使用している場合にのみ必要であることを指摘する価値があります。 Python 2.xを使用している場合、リソースファイルはこの追加スイッチなしでコンパイルする必要があります。 – 0x8BADF00D

+0

@ 0x8BADF00D [docsに従う](http://pyqt.sourceforge.net/Docs/PyQt4/resources.html)、 '-py3'フラグは、Python 2.6以上と互換性のあるファイルを作成します。 Pythonの古典的なバージョンを使用していない限り、将来的には '-py3'を使用してください。 – jpyams

19

は、あなたがして、あなたが、あなたのプロジェクトにインポートすることができますモジュールicon_rc.pyを作成しますpyrcc4 -o icon_rc.py icon.qrcを呼び出して、リソースファイル(例えばicon.qrc)を持っています。

これはすべてhereと書かれています。

+0

私はちょうどこのqrcファイルをpyモジュールに変換できません。私がcmdのコードを使用すると、pyrcc4 -o icon_rc.py icon.qrcと表示されます。 pyrcc4:ファイルが存在しません 'icon.qrc' – Thomas

+0

そして、コマンドを実行しているディレクトリに存在しますか? – mata

+1

ああ私はそれをコンパイルしてプロジェクトにインポートすることができましたが、今度は新しいエラーが発生します。 に ファイル ""、ライン89を、ファイル "Fを:\コンピューティング\ Payrollv22 \ icon_rc.py"、行300、 qInitResources() ファイル "F:\コンピューティング\ Payrollv22 \ ritch_rc.py" で、ライン295、qInitResources QtCore.qRegisterResourceData中(0×01、STR(qt_resource_struct)、STR(qt_resource_name)、STR(qt_resource_data)) はTypeError:qRegisterResourceData(int型は、STR、STR、STR):引数2は、予期しない型 'str' は – Thomas

1

我々はPythonのファイルにそのQRCファイルを変換する必要がありますし、それはあなたのコードにインポートすることができます。

---

0

あなたが好きなようにもpysideと試みることができる、このコマンドは

Pyrcc5 input_file.qrc -o Out_file.pyを使用することができますPyqt5で

+1

pydideはpyqt4と異なります。 – eyllanesc

+0

はい、これは別のオプションです。 –

0

pyside-rcc -o input.qrc output.pyそのまた、あなたのUIを変換するpyuic5を使用する場合PYするので、UIスティックからリソース・ファイル名。

その後、main_script.py

import icon_rc 

から削除し、

import icons 

アイコンモジュールからの実際のアイコンを呼び出すときに、あなたが見ているを使用し

Pyrcc5 input_file.qrc -o icons.py 

を使用あなたのqrcファイル接頭辞。

<RCC> 
    < qresource 
    prefix = "ico5" > 
    <file> plugin.png </file > 
    </qresource > 
</RCC > 

プレフィックスはico5 であるならば、あなたは

QtGui.QIcon(":/ico5/plugin.png") 

でアイコンをロードし、接頭辞である場合は、言うことができます、

<RCC> 
    <qresource prefix="icons"> 

その:

QtGui.QIcon(":/icons/plugin.png") 
関連する問題