3

GObject イントロスペクションを使用して、Python と Gtk 3 について学習しています。私はいくつかのサンプルを作成しましたが、それがどのように機能するかを理解し始めています。しかし、理解できないことが 1 つあります。どうすれば gpointer パラメータを渡すことができますか?

(gpointer を使用して) バッファーを受け取る関数を使用しようとしていますが、常に次のメッセージで終了します。

プロパティ「ピクセル」の値を LP_c_ubyte から gpointer に変換できませんでした

(LP_c_ubyte は私の最後の試みでしたが、多くの型を証明しました)

4

1 に答える 1

1

GObject イントロスペクションでポインターを渡すことはできません。イントロスペクトされた関数が自分で作成したものである場合は、パラメーター ドキュメントに、たとえば で注釈(array length=buflen)を付ける必要があります。ここbuflenで、 はバッファーの長さを与えるパラメーターの名前です。詳細については、リンク先のページを参照してください。

関数が自分で作成したのではないライブラリにある場合は、API を調べてよりイントロスペクションに適した関数を探すか、ライブラリにバグを報告してください。裸gpointerの s を使用する API は、Python にさらされるべきではありません。

于 2013-10-19T21:27:17.510 に答える