こんにちは。既に自己解決されておりますが、自分が勝手に親近感を抱きましたので、蛇足すぎる情報を投稿させていただきます。
フリーソフトウェアのDJソフト「Mixxx」でのQtScriptの使用例
MixxxではXMLとJavaScriptによるMIDIコントローラーでのソフト制御とMIDIコントローラーのLEDなどの制御を記述することができます。
Controller Mapping Documentation - Mixxx Wiki
Controller Scripting - Mixxx Wiki
余談: Mixxx Wikiの一部日本語訳について
「Controller Scripting」に関しては、5年前くらいに私が日本語訳したものありますが、Mixxx自身のバージョンアップにより、最新版の原本Wikiドキュメントの翻訳はもちろん、MixxxがQt5に移行したことによって新たな情報がありそうですので、日本語訳は2020-03-16時点では参考にしない方が良いと思います。
実際にJavaScriptファイルをどのように読んでいるかは、GitHubで公開されているソースコードではこの辺かなと思います。
src/controllers/controllerengine.h
src/controllers/controllerengine.cpp
QMLがほぼJavaScriptに見える件
既にご承知かとは存じ上げますが、公式ドキュメントを張り付けておきます。
QML Applications - Qt Documentation
上記リンク先の内容を引用すると、
QML is a user interface specification and programming language. It allows developers and designers alike to create highly performant, fluidly animated and visually appealing applications. QML offers a highly readable, declarative, JSON-like syntax with support for imperative JavaScript expressions combined with dynamic property bindings.
JSON-like syntax との事なので、そりゃあ似るかなというのが個人的な感想です。
少し深入りして First Steps with QML - Qt Documentationを少し眺めました。
個人の感想になりますが、
「QMLはWebページで言うところのHTML的なものっぽいわね」
と思いました。
余談: QMLがHTML的なものと考えると……、
また更に個人の感想で恐縮ですが、
「QMLがHTML的なものと考えると、できる限りQMLとJavaScriptは分けて書いた方が行儀がいいのかな」
と思った次第です。
今日のWebアプリはSPAだったりする場合、クライアントのブラウザにJavaScriptを読んでもらって動的にDOM編集していることも多いのでこの限りではないかもしれませんが。
QtはECMAScriptに準じています
以下、何らかの情報を得てQtScript(Qtで利用するJavaScript)の情報を漁っている方向けに書き残します。
特に特殊な実装はしていません。ご安心を。
Qt4までの話はこちら。
Qt Script - Qt Documentation
Qt5以降はまとまったドキュメントは見つけられませんでした。代わりに上記リンク先の一文では、
Warning: This module is not actively developed. It is provided for backwards compatibility with Qt 4 only. For new code, use QJSEngine and related classes in the Qt QML module instead.
との事なので、案内通りにQJSEngineの方から掻い摘んで、Qtの提供しているAPIを確認した方が良さそうです。Details Descriptionの章を斜め読みした限りでは、ES2015で新たに追加された仕様(特に import
, export
といったモジュール機能)も使える様になっていると見受けられるので。
以上が、
「C#が本業のスクリプトキディがDJコントローラー(Numark NV)を買ったものの、やっぱり対応していなかったので、Mixxxのスクリプトを暇な時に書いてみた」
限りで得た情報です。
kokawa2003さんはもちろん、他QtScriptの情報、もっと言えばMixxxのコントローラースクリプト開発に取り組もうとしている方の参考になれば幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/16 10:44
2020/03/16 10:59