外観
プラグインテンプレート
musescore-plugin-template は、本サイトで案内している分割・ライブラリ・i18n に加え、KalimbaNotation などの 4.4+ 改修で得た落とし穴対策を入れた雛形です。
| 要素 | 内容 |
|---|---|
| ソース分割 | UI(エントリ QML)/橋渡し/logic.js(開発ノウハウ §3) |
| 共有ライブラリ | musescore-plugin-lib を相対 import |
| 日本語 i18n | i18n.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- ライブラリとテンプレートを上記どおり配置する
- MuseScore で Plugin Template を有効化する(補助
.qmlは有効化しない) - スコアを開き、音符を選択して実行する
詳細な 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 です。
自作への流用
- フォルダをコピーして名前を変える
title/description/Settings.category/logic.jsを差し替える- 文言は
i18n.jsのSTRINGSに追加する - 独自フォントを使う場合は
requiredFontsにファミリー名を入れる
終了は quit()(Qt.quit() は使わない)。
関連ページ
| ページ | 内容 |
|---|---|
| 開発ノウハウ §3 | ソース分割の方針 |
| 開発ノウハウ §7 | 実務知見・落とし穴 |
| 共有ライブラリ | musescore-plugin-lib の使い方 |
| 国際化(i18n) | qsTr / qsTranslate / 4.x の注意 |