Garnet というmrubyとQt (QObject) のバインディングを開発して、Qtとmrubyの連携を色々試してみました。 QMetaObject Qtには、C++自体にはないリフレクション機能をサポートするためのQMetaObjectというものがあります。 QMetaObjectは、QObject (Qtの様々なクラスの継承元になっている) から派生した各クラスごとにビルド時に作成されるオブジェクトで、QObjectに対する動的なメソッドの呼び出しやプロパティのアクセス、シグナル・スロットのシステムなどを可能にしています。 動的なUI記述言語であるQMLも、このQMetaObjectのシステムを基盤にしていて、C++で書かれた機能にQML・JavaScriptからアクセスできるのはこのためです。 Garnet Garnetは、このQMetaObjectを使ってmrubyからQtの

