2013-04-07 17 views
13

Bir kaynak dosyası içe aktarırken sorun yaşıyorum. Ben pyqt4 maymun stüdyosu ile kullanıyorum ve bir png görüntü almaya çalışıyorum. Ben Programı çalıştırdığınızda ben pyrcc4 kullanarak derlemek zorunda olduğunu biliyoruzPYQT4 - Bir qrc dosyasını programıma nasıl derler ve alırım?

ImportError: No module named icon_rc

gibi bir ithalat hata alıyorum ama bu can kimsenin yardımına lütfen nasıl anlamıyorum. Kaynak dosyayı nasıl derleyeceğimi tam olarak açıklayan bir cevaba sahip olmak çok yararlı olacaktır. Gerçekten burada açıklamak çok şey yok

cevap

26

Açık cmd (veya * nix üzerinde terminali) ve çalıştırmak

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

başarıyla dosyayı derlenmiş ve benim projeye py dosyasını içe ve hiçbir sorunla çalıştırmak başardı.

+3

sahiptir Bu '-py3' anahtarının sadece Python 3.x kullanıyorsanız, gerekli olduğunu belirtmeye değer olabilir. Python 2.x kullanıyorsanız, kaynak dosya bu ek anahtar olmadan derlenmelidir. – 0x8BADF00D

+0

@ 0x8BADF00D [Dokümanlara göre] (http://pyqt.sourceforge.net/Docs/PyQt4/resources.html), '-py3' bayrağı herhangi bir Python 2.6 veya üstü ile uyumlu bir dosya oluşturacaktır. Python'un gerçekten arkaik bir sürümünü kullanmıyorsanız, gelecekteki prova için her zaman -py3'ü kullanmalısınız – jpyams

19

, o zaman daha sonra projenizde alabileceğiniz bir modül icon_rc.py yaratacak pyrcc4 -o icon_rc.py icon.qrc diyoruz, bir kaynak dosyası (örneğin icon.qrc) var.

Her şey belgeleniyor here.

+0

ben sadece Bu qrc dosyasını bir py modülüne dönüştüremez. cmd pyrcc4 -o icon_rc.py icon.qrc kodunu kullandığımda, pyrcc4 yazıyor: Dosya yok 'icon.qrc' – Thomas

+0

Ve komutu çalıştırdığınız dizinde var mı? – mata

+1

ah tamam, bu yüzden onu derlemeyi ve projeme aktarmayı başardım ama şimdi yeni bir hata atıyor! içinde File "", satır 89, Dosya "F: \ işlem \ Payrollv22 \ icon_rc.py", hat 300, qInitResources() Dosya "F: \ işlem \ Payrollv22 \ ritch_rc.py" olarak, hat 295, qInitResources QtCore.qRegisterResourceData içinde (0x01 str (qt_resource_struct) str (qt_resource_name) str (qt_resource_data)) TypeError: qRegisterResourceData (int str str str) bağımsız değişken 2 beklenmedik tipi str – Thomas

1

Biz piton dosyasına bu QRC dosyayı dönüştürmek gerekir ve o zaman kodunuzu alınabilir:

--- pyside-rcc -o input.qrc output.py

0

sizin gibi hem PySide ile deneyebilirsiniz bu komut

Pyrcc5 input_file.qrc -o Out_file.py kullanılabilir Pyqt5 yılında

+1

pyside pyqt4 – eyllanesc

+0

'dan farklı Evet öyle, ama bu sadece başka bir seçenek için. –

0

bunun nedeni, UI'yu py'ye dönüştürmek için de pyuic5'i kullandığınız zaman, UI çubuklarından kaynak dosya adıdır.

sonra simgeler modülünden fiili simgeleri ararken, bakmak zorunda

import icons 

main_script.py gelen

import icon_rc 

Pyrcc5 input_file.qrc -o icons.py 

kaldırmayı kullanmak ve kullanmak senin qrc dosya öneki.

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

sonra

<RCC> 
    <qresource prefix="icons"> 

onun, önek ico5 ise o zaman

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

ile simgeleri yük ve ön ekidir, diyelim:

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