1

作为法国人,我的英语不好,对不起。

我用python和pyobject为Gtk3升级了一个使用python和pygtk运行的应用程序。很难找到关于 pyGobject 的完整文档,我想用 sqlalchemy 映射一个树模型。

当我想继承 Gtk.TreeModel 时,我遇到了这个错误:

class AlchemyListStore(Gtk.TreeModel):

def __init__(self, types):
     Gtk.TreeModel.__init__(self)
     ...

第一行返回:

...
File "/usr/lib64/python3.5/site-packages/gi/types.py", line 205, in _type_register
_gobject.type_register(cls, namespace.get('__gtype_name__'))
TypeError: argument must be a GObject subclass

在 pyGtk 下,它是 gtk.GenericTreeModel 并且运行良好......

我在Wikibooks上找到了一个 C 语言示例,并引用:

[...] 我们需要一些样板代码来向 GObject 类型系统注册我们的自定义模型。

它如何与 pyObject 一起工作?这是一条好路吗?预先感谢您的帮助 :)

4

1 回答 1

3

Gtk.TreeModel是一个接口而不是一个类,所以:

class AlchemyListStore(GObject.Object, Gtk.TreeModel):
    def __init__(self):
        super().__init__()
于 2017-02-24T22:01:06.927 回答