Python 如何使用Gdk3从文件创建PixBuf?

Python 如何使用Gdk3从文件创建PixBuf?,python,gtk3,gdkpixbuf,Python,Gtk3,Gdkpixbuf,环境:蟒蛇3 图书馆: from gi.repository import Gtk, Gdk import cairo 我想创建一个“pixbuf from file”,但该方法在Gdk3中不再存在 pb = Gdk.pixbuf_new_from_file('sunshine.png') Gdk.cairo_set_source_pixbuf(cr, pb, 0, 0) 结果:AttributeError:'gi.repository.Gdk'对象没有属性'pixbuf_new_from_

环境:蟒蛇3

图书馆:

from gi.repository import Gtk, Gdk
import cairo
我想创建一个“pixbuf from file”,但该方法在Gdk3中不再存在

pb = Gdk.pixbuf_new_from_file('sunshine.png')
Gdk.cairo_set_source_pixbuf(cr, pb, 0, 0)
结果:AttributeError:'gi.repository.Gdk'对象没有属性'pixbuf_new_from_file'

有人知道如何使用Gdk3吗? Gdk3似乎只支持以下方法:

gdk_pixbuf_get_from_window
gdk_pixbuf_get_from_surface
更新

我自己发现的:

image = Gtk.Image()
image.set_from_file('sunshine.png')
pixbuf = image.get_pixbuf()
Gdk.cairo_set_source_pixbuf(cr, pixbuf, 10, 10)

这个问题由来已久,但也许对某人有所帮助:

from gi.repository import GdkPixbuf
pixbuf = GdkPixbuf.Pixbuf.new_from_file('sunshine.png')

在GdkPixbuf上测试。_version=='2.0'

我对python不太了解,但通常不应该直接使用gtk映像加载文件。由于错误处理,请改用GdkPixbuf。(在python中)没有属性“pixbuf new from file”的原因是,对于大部分GdkPixbuf处理,仍然使用(在C中)gdk-pixbuf-2.0。我不知道他们为什么没有移植或者仍然保留它。在python中,您必须找到“gdk pixbuf”模块,而不是像Schcrisher指出的那样使用GDK3。

也许这个问题在2013年就已经过时了,但这个答案在2017年非常有效:)