QGISプラグインのアイコンを変更すると、メニュー/ツールバーで変更されないのはなぜですか?


11

QGISプラグイン(「プラグインビルダー」プラグインを使用)を作成していて、アイコン(icon.png)を変更することにしました。

make deployを実行してプラグインをローカルで再構築すると、新しいアイコンがプラグインマネージャー(プラグインのリストとプラグインの説明パネルの両方)に表示されます。ここまでは順調ですね。

ただし、古いアイコンはメニューとツールバーアイコンに残ります。

icon.pngがmetadata.txtで正しいことを確認し、〜/ .qgis / python / plugins / mypluginディレクトリにコピーしています

これは特に不可解です。デフォルトのプラグインアイコンを置き換えるのではなく、デフォルトのプラグインアイコンを置き換えるために以前に作成したアイコンです。したがって、これは以前に機能しました...:/

私はこれらを試しました...

  • QGISの再起動
  • プラグインマネージャを使用してプラグインをアンインストールしてから再インストールする
  • make deraseに続いてmake deployを使用してプラグインを破棄します
  • 「Plugin reloader」プラグインを使用してプラグインをリロードします

QGISはアイコンをどこかにキャッシュしますか?それが私が考えることができる唯一の説明です。もしそうなら、キャッシュをフラッシュする方法はありますか?

Ubuntu 14.04でQGIS 2.10.1 Pisaを使用しています。「Plugin Builder」バージョン2.8.3を使用しています

これまでプラグインをインストールしたことがない人には問題にならないと思いますが、少し奇妙です。

回答:


26

QGIS 3では、

pyrcc5 -o resources.py resources.qrc 

プラグインアイコンがバイト配列に変換されて保存されました resources.py

したがって、このアイコンを変更したい場合は、リソースを再度コンパイルする必要があります。

pyrcc4 -o resources.py resources.qrc 

1
アドバイスに従ってQGISを再起動すると、アイコンが変わりました。ありがとうございます。
Steven Kay

3
..そしてそれが機能しない場合は、make clean続いてmake deploy、コンパイルされたリソースを削除し、アイコンを強制的に再構築します
Steven Kay

これは私に無効な構文を与えます。
サニーナイク2017年

1

dmh126の回答に加えて、インポートを誤って削除して、リソースのPythonコードがコンパイルされないようにしてください。たとえば、リソースファイルが 'resources.py'の場合(Pythonファイルがネストされていない場合)、プロジェクトを検索して、コードに次の行があることを確認します。

import resources

または、resources.pycプラグインを削除して再ロードし、プラグインが実際にコンパイルされていることを確認することもできます。


1

QGISブライトン2.6.1を使用して、同様の問題が発生しました。私はあなたの指示/ヒントに従いました、そして解決策は:

  • OSGeo4Wシェルを開き、次のように入力してプラグインフォルダーMyPluginに変更します。 cd C:\Program Files\QGIS Brighton\apps\qgis\python\plugins\MyPlugin

  • タイプ:make clean(resource_rc.pyを削除します)

  • タイプ:make deploy(resouce.qrcから新しいresource_rc.pyが出力されます)
  • QGISプラグインマネージャーで、プラグインを無効にして再度有効にし(新しいコンパイル済みのresource_rc.pycを出力)、新しい画像/ロゴが変更されました。

ありがとう!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.