Ce problème est dû au fait qu'il uic
ne fonctionne pas correctement. Je ne sais pas exactement pourquoi, mais je peux montrer les symptômes et une solution de contournement.
Le .ui
fichier de plugin initial a un resources
élément vide :
<resources/>
Lorsque vous modifiez les ressources du plugin dans QtDesigner, cela se transforme en:
<resources>
<include location="resources.qrc"/>
</resources>
C'est la source du problème. Si vous modifiez le fichier .qrc dans cette balise include,resourcesXXX.qrc
l'erreur se transforme en No module named resourcesXXX_rc
.
Remarque: ce qui suit est basé sur une construction de plugin avec 'test' entré dans tous les champs du générateur de plugins QGIS.
Dans le fichier test_dialog.py , les lignes suivantes compilent le fichier .ui :
FORM_CLASS, _ = uic.loadUiType(os.path.join(
os.path.dirname(__file__), 'test_dialog_base.ui'))
C'est là que l'erreur se produit.
Modifiez votre .ui
fichier pour y revenir <resources/>
et le problème est résolu. Jusqu'à ce que vous modifiiez à nouveau votre boîte de dialogue dans QtDesigner. Vous devez effectuer cette modification dans le .ui
fichier après chaque modification de votre boîte de dialogue.
La solution à cela est de changer votre plugin pour qu'il fonctionne comme les versions précédentes du plugin fonctionnaient. Cela implique de remplacer l' appel uic et les lignes de classe dans le fichier _dialog.py . Remplacez ces lignes:
FORM_CLASS, _ = uic.loadUiType(os.path.join(
os.path.dirname(__file__), 'test_dialog_base.ui'))
class testDialog(QtGui.QDialog, FORM_CLASS):
avec:
from test_dialog_base import Ui_testDialogBase
class testDialog(QDockWidget, Ui_testDialogBase):
Vous devrez maintenant exécuter
pyuic4 -x test_dialog_base.ui > test_dialog_base.py
lorsque vous créez votre plugin pour la première fois et à chaque fois que vous modifiez votre boîte de dialogue de plugin avec QtDesigner. C'était l'ancienne méthode du plugin.
Que ce soit pour éditer le .ui
fichier ou le lancer à pyuic4
chaque fois, c'est votre choix.
No module named resources_napoved_rc
etpyrcc4 -o resources_napoved_rc.py resources_napoved.qrc
ou est-ce une erreur de frappe?