web-dev-qa-db-fra.com

PYQT4 - Comment compiler et importer un fichier QRC dans mon programme?

Je ne parviens pas à importer un fichier de ressources. J'utilise pyqt4 avec Monkey Studio et j'essaie d'importer une image au format png. Lorsque je lance le programme, une erreur d'importation, telle que 

ImportError: Aucun module nommé icon_rc

Je sais que je dois le compiler avec pyrcc4 mais je ne comprends pas comment faire. Quelqu'un peut-il m'aider? Il serait très utile d’avoir une réponse expliquant en détail comment compiler le fichier de ressources pour que je puisse l’importer.

14
Thomas

Ouvrez cmd (ou terminal sur * nix) et lancez

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

Le fichier a été compilé avec succès et j'ai pu importer le fichier py dans mon projet et l'exécuter sans problème.

28
Thomas

Il n’ya vraiment pas grand chose à expliquer ici, vous avez un fichier de ressources (par exemple, icon.qrc), puis vous appelez pyrcc4 -o icon_rc.py icon.qrc qui créera un module icon_rc.py que vous pourrez ensuite importer dans votre projet.

Tout est documenté ici .

20
mata

En Pyqt5, cette commande peut être utilisée Pyrcc5 input_file.qrc -o Out_file.py

Nous devons convertir ce fichier qrc en fichier python, puis l’importer dans votre code 

3
IFfy KhAn

c’est parce que lorsque vous avez également utilisé pyuic5 pour convertir votre interface utilisateur en py, le nom du fichier de ressources provenant des clés d’interface utilisateur.

puis utiliser

Pyrcc5 input_file.qrc -o icons.py

retirer de main_script.py

import icon_rc

et utilise 

import icons

lorsque vous appelez les icônes à partir du module icons, vous devez regarder le préfixe de votre fichier qrc.

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

si préfixe est ico5 vous chargez des icônes avec 

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

et si préfixe est, disons, 

<RCC>
    <qresource prefix="icons">

alors son:

  QtGui.QIcon(":/icons/plugin.png")
0
Storm Shadow

vous pouvez aussi essayer avec pyside comme:

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

0
Nilesh K.