如何在Python中使用Gdk4将Texture设置到剪贴板?
问题
nautilus-image-copypaste是一款Nautilus扩展,支持从图像文件设置剪贴板内容、从剪贴板生成图像文件。目前读取剪贴板功能正常,但无法实现第108行的剪贴板设置操作:
- Python的Gdk4绑定未提供
set_texture方法,这原本是最直观的实现方式 - 绑定中可用的
set方法需要传入GDK_TYPE_TEXTURE类型,但找不到该类型定义
解决方法
- 获取Texture对应的GType:在Gdk4 Python绑定里,
GDK_TYPE_TEXTURE等价于Gdk.Texture.__gtype__,直接调用这个属性即可替代宏定义。 - 推荐使用
set_content方法:无需手动指定类型,直接传入Gdk.Texture对象即可完成剪贴板设置,示例代码:
# 假设已加载得到texture对象 clipboard = Gdk.Display.get_default().get_clipboard() clipboard.set_content(texture)
- 兼容
set方法的写法:如果要沿用原set方法,代码如下:
clipboard.set(Gdk.Texture.__gtype__, texture)
另外,建议更新到最新版PyGObject绑定,避免旧版本API缺失问题:
pip install --upgrade pygobject
内容的提问来源于stack exchange,提问作者Reece
相关产品推荐
相关产品推荐

