【问题标题】:Does Python have a "pointer" equivalent for the purposes of PyGObject?Python 是否有用于 PyGObject 的“指针”等价物?
【发布时间】:2020-04-09 18:09:19
【问题描述】:

我正在尝试使用Gtk.SelectionData.set,其中一个参数是

data (bytes) – 指向数据的指针(将被复制)

我要传递的数据是Gtk.EventBox,但我不清楚如何创建指向该数据的指针,或者我是否应该。 GObject 的 Python 绑定的文档是从 C 文档自动生成的,据我所知,Python 没有直接等效于 C 中的指针。

我找不到在 Python 代码中使用此函数的任何示例。我在 C 中找到了示例,例如

gtk_selection_data_set (selection_data,
        gdk_atom_intern_static_string ("GTK_LIST_BOX_ROW"),
        32,
        (const guchar *)&widget,
        sizeof (gpointer));

来自here,但我不明白如何将其翻译成 Python。

【问题讨论】:

    标签: python pointers gtk3 pygobject gobject-introspection


    【解决方案1】:

    不可能将该示例直接转换为 Python,因为即使您可以将事件框的地址存储在剪贴板中,与 C 语言不同,您也无法重构事件框对象不在另一边的地址。

    如果不了解您的特定应用程序的更多信息,很难建议该做什么,但也许您可以存储如何从顶层访问小部件的文本表示,例如event_box.get_path().to_string()

    【讨论】:

    • 我有一个 ListBox,希望用户能够通过拖放重新排列其子项。目前,我已经完成了与您描述的类似的操作,将拖动的子项的索引转换为字符串并使用set_text 而不是set。感谢您确认我可以放弃尝试让set 工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 2015-09-06
    • 2012-07-17
    • 2012-06-14
    • 2010-10-06
    • 2014-01-09
    • 2017-12-17
    相关资源
    最近更新 更多