3

我正在尝试在 Python3 中基于 GenericTreeModel 编写自己的 Gtk+3-TreeModel,但我出现了这个错误:

AttributeError:“gi.repository.Gtk”对象没有属性“GenericTreeModel”

GenericTreeModel 是否已重命名?

提前致谢。

4

3 回答 3

4

PyGObject recently gained GenericTreeModel support through pygtkcompat.

This is new in 3.7.90 with a fix in 3.7.91

So now you should be able to migrate GenericTreeModels by using the compatibility module, at least as a start.

于 2013-03-15T14:18:21.797 回答
3
于 2012-07-16T12:58:29.710 回答
1

我在 PyGObject 和 Gtk 中找不到任何对 GenericTreeModel 的引用,但我认为您正在寻找的只是 TreeModel:

http://developer.gnome.org/gtk3/stable/GtkTreeModel.html

TreeModel 是接口,由 ListStore、TreeModelFilter、TreeModelSort 和 TreeStore 实现。

>>> from gi.repository import Gtk
>>> dir(Gtk.TreeModel)
['__bool__', '__class__', '__delattr__', '__delitem__', '__dict__', '__doc__',
 '__format__', '__gdoc__', '__getattribute__', '__getitem__', '__gtype__', '__hash__', 
 '__info__', '__init__', '__iter__', '__len__', '__module__', '__new__', '__nonzero__',
 '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', 
 '__str__', '__subclasshook__', '__weakref__', '_convert_row', '_convert_value', 
 '_getiter', 'filter_new', 'foreach', 'get', 'get_column_type', 'get_flags', 'get_iter',
 'get_iter_first', 'get_iter_from_string', 'get_n_columns', 'get_path', 
 'get_string_from_iter', 'get_value', 'iter_children', 'iter_has_child', 
 'iter_n_children', 'iter_next', 'iter_nth_child', 'iter_parent', 'iter_previous', 
 'ref_node', 'row_changed', 'row_deleted', 'row_has_child_toggled', 'row_inserted', 
 'set_row', 'sort_new_with_model', 'unref_node']

编辑:

在旧的 PyGtk API 中找到了你正在寻找的东西,遗憾的是,这是一个仅 PyGtk 的创作。使用自省的东西,你只能得到 Gtk 直接提供的东西,所以你必须直接处理 TreeModel。

希望能帮助到你。

于 2012-06-14T15:39:42.753 回答