Zmieniając ikonę wtyczki QGIS, dlaczego nie zmienia się w menu / pasku narzędzi?

11

Piszę wtyczkę QGIS (używając wtyczki „Plugin Builder”) i zdecydowałem, że chcę zmienić ikonę (icon.png).

Po uruchomieniu make deploy w celu lokalnej odbudowy wtyczki nowa ikona pojawia się w Menedżerze wtyczek (zarówno na liście wtyczek, jak i panelu opisu wtyczek). Na razie w porządku.

Jednak stara ikona pozostaje w menu i ikonach paska narzędzi.

Ustaliłem, że icon.png jest poprawny w metadata.txt i jest kopiowany do mojego katalogu ~ / .qgis / python / plugins / myplugin .

Jest to szczególnie zagadkowe - nie zastępuję domyślnej ikony wtyczki, ale ikonę, którą wcześniej utworzyłem, aby zastąpić domyślną ikonę wtyczki. Więc działało to przed ...: /

Próbowałem tych ...

  • restartowanie QGIS
  • odinstaluj, a następnie zainstaluj ponownie wtyczkę za pomocą menedżera wtyczek
  • zniszcz wtyczkę za pomocą make derase, a następnie make deploy
  • przeładuj wtyczkę za pomocą wtyczki „Plugin reloader”

Czy gdzieś ikony QGIS buforują? To jedyne wyjaśnienie, jakie mogę wymyślić. Jeśli tak, to czy jest jakiś sposób na opróżnienie pamięci podręcznej?

Używam QGIS 2.10.1 Pisa na Ubuntu 14.04. Używam „Plugin Builder” w wersji 2.8.3

Podejrzewam, że nie będzie to problemem dla nikogo, kto wcześniej nie instalował wtyczki, ale to trochę dziwne.

Steven Kay
źródło

Odpowiedzi:

26

W QGIS 3 trzeba to zrobić

pyrcc5 -o resources.py resources.qrc 

Ikona wtyczki została przekonwertowana na tablicę bajtów i zapisana w resources.py

Więc jeśli chcesz zmienić tę ikonę, musisz ponownie skompilować swoje zasoby:

pyrcc4 -o resources.py resources.qrc 
dmh126
źródło
1
po skorzystaniu z porady i ponownym uruchomieniu QGIS ikona zmieniła się .. dziękuję!
Steven Kay,
3
.. a jeśli to nie zadziała, make cleannastępnie make deployusunie skompilowany zasób i zmusi ikonę do przebudowania
Steven Kay
To daje mi niepoprawną składnię.
Sunny Naik
1

Oprócz odpowiedzi dmh126 upewnij się, że przypadkowo nie usunąłeś importu, a tym samym uniemożliwiłeś kompilację kodu python zasobów. Np. Jeśli plik zasobów to „resources.py” - zakładając, że pliki Pythona nie są zagnieżdżone - przeszukasz projekt, aby upewnić się, że kod zawiera wiersz:

import resources

Możesz też usunąć resources.pyci ponownie załadować wtyczkę, aby upewnić się, że rzeczywiście się kompiluje.

Kieszenie i
źródło
1

Miałem podobny problem, używając QGIS Brighton 2.6.1. Postępowałem zgodnie z twoimi sugestiami / wskazówkami, a rozwiązania były następujące:

  • Otwórz powłokę OSGeo4W i przejdź do folderu wtyczek MyPlugin, wpisując: cd C:\Program Files\QGIS Brighton\apps\qgis\python\plugins\MyPlugin

  • Wpisz: make clean(usuwa plik resource_rc.py)

  • Wpisz: make deploy(z pliku resouce.qrc generuje nowy plik resource_rc.py)
  • W menedżerze wtyczek QGIS wyłącz i włącz ponownie wtyczkę (generuje nowe skompilowane zasoby_rc.pyc) I zmieniły się nowe obrazy / logo.

Dzięki!

Frederik Eistrup
źródło