Wenn Sie das Symbol des QGIS-Plugins ändern, warum ändert es sich nicht im Menü / in der Symbolleiste?

11

Ich habe ein QGIS-Plugin geschrieben (mit dem Plugin "Plugin Builder") und beschlossen, das Symbol (icon.png) zu ändern.

Nach dem Ausführen von make deploy , um das Plugin lokal neu zu erstellen, wird das neue Symbol im Plugin-Manager angezeigt (sowohl in der Liste der Plugins als auch im Plugin-Beschreibungsfeld). So weit, ist es gut.

Das alte Symbol bleibt jedoch im Menü und in den Symbolleistensymbolen erhalten.

Ich habe festgestellt, dass die Datei icon.png in der Datei metadata.txt korrekt ist und in mein Verzeichnis ~ / .qgis / python / plugins / myplugin kopiert wird .

Dies ist besonders rätselhaft - ich ersetze nicht das Standard-Plugin-Symbol, sondern ein Symbol, das ich zuvor erstellt habe, um das Standard-Plugin-Symbol zu ersetzen. Das hat also schon mal geklappt ...: /

Ich habe diese versucht ...

  • QGIS neu starten
  • deinstallieren Sie das Plugin und installieren Sie es mit dem Plugin-Manager neu
  • Zerstören Sie das Plugin mit make derase, gefolgt von make deploy
  • Laden Sie das Plugin mit dem Plugin "Plugin reloader" neu

Zwischenspeichert QGIS irgendwo Symbole? Das ist die einzige Erklärung, die mir einfällt. Wenn ja, gibt es eine Möglichkeit, den Cache zu leeren?

Ich verwende QGIS 2.10.1 Pisa unter Ubuntu 14.04. Ich verwende "Plugin Builder" Version 2.8.3

Ich vermute, es wird kein Problem für jemanden sein, der das Plugin noch nicht installiert hat, aber es ist ein bisschen seltsam.

Steven Kay
quelle

Antworten:

26

In QGIS 3 muss man tun

pyrcc5 -o resources.py resources.qrc 

Ihr Plugin-Symbol wurde in ein Byte-Array konvertiert und in gespeichert resources.py

Wenn Sie dieses Symbol ändern möchten, müssen Sie Ihre Ressourcen erneut kompilieren:

pyrcc4 -o resources.py resources.qrc 
dmh126
quelle
1
Nachdem Sie Ihren Rat befolgt und QGIS neu gestartet haben, hat sich das Symbol geändert. Vielen Dank!
Steven Kay
3
.. und wenn das nicht funktioniert, wird make cleangefolgt von make deploywird die kompilierte Ressource entfernt und erzwingen, dass das Symbol neu erstellt wird
Steven Kay
Dies gibt mir eine ungültige Syntax.
Sunny Naik
1

Stellen Sie zusätzlich zur Antwort von dmh126 sicher, dass Sie den Import nicht versehentlich gelöscht haben und somit das Kompilieren des Ressourcen-Python-Codes verhindert haben. Wenn Ihre Ressourcendatei beispielsweise "resources.py" lautet - vorausgesetzt, Python-Dateien sind nicht verschachtelt -, durchsuchen Sie Ihr Projekt, um sicherzustellen, dass Ihr Code die folgende Zeile enthält:

import resources

Alternativ können Sie resources.pycdas Plugin löschen und neu laden, um sicherzustellen, dass es tatsächlich kompiliert wird.

Taschen und
quelle
1

Ich hatte ein ähnliches Problem mit QGIS Brighton 2.6.1. Ich habe Ihre Anweisungen befolgt und die Lösungen waren:

  • Öffnen Sie die OSGeo4W-Shell und wechseln Sie in den Plugin-Ordner MyPlugin, indem Sie Folgendes eingeben: cd C:\Program Files\QGIS Brighton\apps\qgis\python\plugins\MyPlugin

  • Typ: make clean(entfernt die resource_rc.py)

  • Typ: make deploy(von resouce.qrc gibt new resource_rc.py aus)
  • Deaktivieren und aktivieren Sie im QGIS-Plugin-Manager das Plugin (gibt neue kompilierte resource_rc.pyc aus). Die neuen Bilder / Logos wurden geändert.

Vielen Dank!

Frederik Eistrup
quelle