Pygobject 中的 Gtk-Gdk 像素图 python

Gtk-Gdk Pixmap in Pygobject python

我正在将代码从 PyGtk 移植到 PyGI(PyGObject)。有我的代码:

import gi
gi.require_version('Gtk','2.0')
from gi.repository import Gtk, Gdk, GObject
w, h = 100,100
# pixmap = gtk.gdk.Pixmap(None, w, h, 1)
pixmap = Gdk.Pixmap(None, w, h, 1) # I Change to it and get error
ctx = pixmap.cairo_create()

我的错误是:

GObject.init() takes exactly 0 arguments (4 given)

... 然后我将 "Gdk.Pixmap(None, w, h, 1)" 更改为 "Gdk.Pixmap.new(None, w, h, 1)" 我收到此错误:

TypeError: Argument 0 does not allow None as a value

谢谢你:)

gi 代表 GObject-introspection。此功能仅出现在 GTK+ 3 中,并允许动态绑定,而不是像 pyGTK 那样的静态绑定。然而,似乎有一个与 GTK+ 2 (pygtkcompat) 的兼容层,但我知道没有项目使用它。

请阅读这篇文章,其中提供了有关如何从 pyGTK 移植到 pyGObject 的提示: https://wiki.gnome.org/Projects/PyGObject/IntrospectionPorting

其中一个迁移步骤是使用 pygi-convert.sh 脚本来更新您的代码并为您完成部分迁移。