Dieses Problem wird dadurch verursacht, dass es uicnicht richtig funktioniert. Ich weiß nicht genau warum, aber ich kann die Symptome und eine Problemumgehung zeigen.
Die anfängliche Plugin- .uiDatei enthält ein leeres resourcesElement:
<resources/>
Wenn Sie die Ressourcen für das Plugin in QtDesigner bearbeiten, ändert sich dies zu:
<resources>
<include location="resources.qrc"/>
</resources>
Dies ist die Ursache des Problems. Wenn Sie die .qrc-Datei in diesem Include- Tag resourcesXXX.qrcändern, ändert sich der Fehler in No module named resourcesXXX_rc.
Hinweis: Das Folgende basiert auf einem Plugin-Build, bei dem 'test' in alle Felder des QGIS-Plugin-Builders eingegeben wurde.
In der Datei test_dialog.py kompilieren die folgenden Zeilen die .ui- Datei:
FORM_CLASS, _ = uic.loadUiType(os.path.join(
os.path.dirname(__file__), 'test_dialog_base.ui'))
Hier tritt der Fehler auf.
Bearbeiten Sie Ihre .uiDatei, um wieder zu wechseln, <resources/>und das Problem ist behoben. Bis Sie Ihren Dialog in QtDesigner erneut bearbeiten. Sie müssen diese Änderung an der .uiDatei nach jedem Bearbeiten Ihres Dialogfelds vornehmen .
Die Lösung hierfür besteht darin, Ihr Plugin so zu ändern, dass es wie frühere Versionen des Plugins funktioniert. Dies beinhaltet das Ersetzen des uic- Aufrufs und der Klassenzeilen in der Datei _dialog.py . Ersetzen Sie diese Zeilen:
FORM_CLASS, _ = uic.loadUiType(os.path.join(
os.path.dirname(__file__), 'test_dialog_base.ui'))
class testDialog(QtGui.QDialog, FORM_CLASS):
mit:
from test_dialog_base import Ui_testDialogBase
class testDialog(QDockWidget, Ui_testDialogBase):
Sie müssen jetzt laufen
pyuic4 -x test_dialog_base.ui > test_dialog_base.py
Wenn Sie Ihr Plugin zum ersten Mal erstellen und jedes Mal, wenn Sie Ihren Plugin-Dialog mit QtDesigner bearbeiten. Dies war die alte Plugin-Methode.
Sie haben die Wahl, ob Sie die .uiDatei oder den Lauf pyuic4jedes Mal bearbeiten möchten.
No module named resources_napoved_rcundpyrcc4 -o resources_napoved_rc.py resources_napoved.qrcoder ist es ein Tippfehler?