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-libZIP

配置

テンプレートは 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.jst()。Apply/Cancel は qsTranslate
フォントインストール済みチェックfonts.jsrequiredFonts(空ならスキップ)
追加した項目の削除Staff Text 先頭に \u200B、削除モードで removeElement
ダイアログ終了で本体も落ちるclosePlugin()quit()Qt.quit() 禁止)
.qml が別プラグイン検出補助ファイルにホスト名を書かない。処理は .js
Qt.labs.settings が無いimport しない。ホストの Settingssettings.js
全スコア閉鎖後に閉じると終了requiresScore: false、Apply 時に curScore 検査

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


自作への流用

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

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


関連ページ

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