問題タブ [gobject-introspection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python には PyGObject に相当する「ポインタ」がありますか?
を使用しようとしてGtk.SelectionData.set
いますが、その 1 つのパラメーターは
data (bytes) – データへのポインタ (コピーされます)
渡したいデータは ですが、Gtk.EventBox
このデータへのポインターを作成する方法、または作成する必要があるかどうかも不明です。GObject の Python バインディングのドキュメントは、C のドキュメントから自動的に生成されます。私が見つけた限りでは、Python には C のポインターに直接相当するものはありません。
この関数が Python コードで使用されている例は見つかりません。次のようなCの例を見つけました
from here ですが、これを Python に翻訳する方法がわかりません。
gobject-introspection - GObject ポインタを返す抽象型の仮想関数はイントロスペクトできません
私は遊んでいてlibpeas
、gobject-introspection の動作に関する問題に遭遇しました。
には(こちらlibpeas
を参照)というタイプがあります。PluginLoader
へのポイントであるcreate_extension
を返すと呼ばれるメソッドがあります。このタイプを gobject-introspection に追加し、このメソッドの結果の GIR ファイルを確認すると、次のようにマークされていることがわかります。PeasExtension *
GObject
introspectable="0"
戻り値を変更しvoid *
て再コンパイルすると、introspectable="0"
属性が GIR ファイルから削除されます。に変更するとGObject *
、introspectable="0"
属性は引き続き存在します。
GObject のインスタンス (ポインター) を返すと、イントロスペクト不能になるようです。しかし、私はなぜ理解していないのですか?
gobject イントロスペクション ドキュメントを読むと、GObject インスタンスを返すことが有効なユース ケースのように見えます。多分それはそのPluginLoader
型が抽象的で、これが仮想メソッドであることと関係がありますか?
メソッドの署名を変更せずに、このオブジェクトを内省可能にするのに役立つ注釈はありますか?