Przyczyną tego problemu jest uicnieprawidłowe działanie. Nie jestem pewien dokładnie, dlaczego, ale mogę pokazać objawy i obejście.
Początkowy .uiplik wtyczki ma pusty resourceselement:
<resources/>
Podczas edycji zasobów wtyczki w QtDesigner zmienia się to na:
<resources>
<include location="resources.qrc"/>
</resources>
To jest źródło problemu. Jeśli zmienisz plik .qrc w tym tagu dołączania,resourcesXXX.qrc błąd zmieni się na No module named resourcesXXX_rc.
Uwaga: poniższe informacje są oparte na kompilacji wtyczek z „testem” wprowadzonym we wszystkich polach konstruktora wtyczek QGIS.
W pliku test_dialog.py następujące wiersze kompilują plik .ui :
FORM_CLASS, _ = uic.loadUiType(os.path.join(
os.path.dirname(__file__), 'test_dialog_base.ui'))
W tym miejscu występuje błąd.
Edytuj .uiplik, aby zmienić z powrotem, <resources/>a problem zostanie rozwiązany. Do czasu ponownej edycji okna dialogowego w QtDesigner. Tę edycję należy wprowadzić do .uipliku po każdej edycji okna dialogowego.
Rozwiązaniem tego jest zmiana wtyczki, aby działała tak, jak działały wcześniejsze wersje wtyczki. Obejmuje to zamianę wywołania interfejsu użytkownika i wierszy klasy w pliku _dialog.py . Zamień te linie:
FORM_CLASS, _ = uic.loadUiType(os.path.join(
os.path.dirname(__file__), 'test_dialog_base.ui'))
class testDialog(QtGui.QDialog, FORM_CLASS):
z:
from test_dialog_base import Ui_testDialogBase
class testDialog(QDockWidget, Ui_testDialogBase):
Musisz teraz biec
pyuic4 -x test_dialog_base.ui > test_dialog_base.py
kiedy po raz pierwszy tworzysz wtyczkę i za każdym razem edytujesz okno dialogowe wtyczki za pomocą QtDesigner. To była stara metoda wtyczek.
Niezależnie od tego, czy chcesz edytować .uiplik, czy uruchomić za pyuic4każdym razem, wybierasz.
No module named resources_napoved_rcipyrcc4 -o resources_napoved_rc.py resources_napoved.qrcczy to błąd w pisaniu?