我将代码从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 ()接受0个参数(给定4个)
... 然后我改变" Gdk.Pixmap(无,w,h,1)" To" Gdk.Pixmap.new(无,w,h,1)"我收到此错误:
TypeError:参数0不允许None作为值
谢谢你:)
答案 0 :(得分:0)
gi
代表GObject-introspection。此功能仅出现在GTK + 3中,并允许动态绑定,而不是像pyGTK这样的静态绑定。然而,似乎有一个兼容层与GTK + 2(pygtkcompat
),但我知道没有项目使用它。
请阅读这篇文章,提供有关如何从pyGTK移植到pyGObject的提示: https://wiki.gnome.org/Projects/PyGObject/IntrospectionPorting
其中一个迁移步骤是使用pygi-convert.sh脚本更新代码并为您执行部分迁移。