3

我正在学习 Python 和 Gtk 3,使用 GObject 自省。我已经做了一些示例,我开始了解它是如何工作的。但是有一件事我不明白,我怎样才能传递一个 gpointer 参数?

我尝试使用一个接收缓冲区(使用 gpointer)的函数,我总是以这条消息结束:

无法将属性“像素”的值从 LP_c_ubyte 转换为 gpointer

(LP_c_ubyte 是我最后一次尝试,但我已经证明了很多类型)

4

1 回答 1

1

您不能在 GObject 内省中传递指针。如果自省函数是您自己编写的,那么您应该使用例如注释您的参数文档(array length=buflen),其中buflen是给出缓冲区长度的参数的名称。有关更多信息,请参阅链接页面。

如果函数位于不是您自己编写的库中,请在 API 中四处寻找对内省更友好的函数,或者向库提交错误。使用裸 s 的 APIgpointer甚至不应该暴露给 Python。

于 2013-10-19T21:27:17.510 回答