Skip to content

プラグインテンプレート ​

musescore-plugin-template は、本サイトで案内している分割・ライブラリ・i18n に加え、KalimbaNotation などの 4.4+ 改修で得た落とし穴対策を入れた雛形です。

要素内容
ソース分割UI(エントリ QML)/橋渡し/logic.js(開発ノウハウ §3)
共有ライブラリmusescore-plugin-lib を相対 import
日本語 i18ni18n.js 辞書フォールバック + translations/locale_ja.ts(国際化)
設定・終了・削除など下表および 開発ノウハウ §7

ライセンス: MIT(作者 yu1row)


ダウンロード ​

方法リンク
GitHub リポジトリyu1row/musescore-plugin-template
ZIP(最新 main)main.zip
依存ライブラリyu1row/musescore-plugin-lib(ZIP)

配置 ​

テンプレートは musescore-plugin-lib と同じ Plugins フォルダに並べます。

Documents/MuseScore4/Plugins/
├── musescore-plugin-lib/
└── musescore-plugin-template/
    ├── PluginTemplate.qml   ← 有効化するのはこのエントリだけ
    ├── OptionRow.qml
    ├── logic.js
    ├── i18n.js
    ├── fonts.js
    └── translations/locale_ja.ts
  1. ライブラリとテンプレートを上記どおり配置する
  2. MuseScore で Plugin Template を有効化する(補助 .qml は有効化しない)
  3. スコアを開き、音符を選択して実行する

詳細な PowerShell 展開例はリポジトリの README を参照してください。


テンプレートに含まれる実務知見 ​

知見実装の要点
多言語(独自 .qm が効かない)i18n.js の t()。Apply/Cancel は qsTranslate
フォントインストール済みチェックfonts.js + requiredFonts(空ならスキップ)
追加した項目の削除Staff Text 先頭に \u200B、削除モードで removeElement
ダイアログ終了で本体も落ちるclosePlugin() → quit()(Qt.quit() 禁止)
子 .qml が別プラグイン検出補助ファイルにホスト名を書かない。処理は .js
Qt.labs.settings が無いimport しない。ホストの Settings + settings.js
全スコア閉鎖後に閉じると終了requiresScore: false、Apply 時に curScore 検査

解説の本文は 開発ノウハウ §7 です。


自作への流用 ​

  1. フォルダをコピーして名前を変える
  2. title / description / Settings.category / logic.js を差し替える
  3. 文言は i18n.js の STRINGS に追加する
  4. 独自フォントを使う場合は requiredFonts にファミリー名を入れる

終了は quit()(Qt.quit() は使わない)。


関連ページ ​

ページ内容
開発ノウハウ §3ソース分割の方針
開発ノウハウ §7実務知見・落とし穴
共有ライブラリmusescore-plugin-lib の使い方
国際化(i18n)qsTr / qsTranslate / 4.x の注意