我试图基于python3中的generictreemodel编写自己的gtk+3-treemodel,但是我犯了一个错误:
AttributeError:'gi.repository.Gtk'对象没有属性'GenericTreeModel'
GenericTreeModel是否已重命名?
提前谢谢。

最佳答案

我在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中发现了what you are looking for,遗憾的是,这只是一个pygtk的创建。有了内省的东西,你只能得到GTK直接提供的东西,所以你必须直接处理Treemodel。
希望有帮助。

10-05 22:39