2012-06-14 4 views

답변

1

내가 PyGObject에서나은 Gtk에서 GenericTreeModel에 대한 참조를 찾을 수 없습니다,하지만 난 당신이 찾고있는 생각은하는 TreeModel입니다 :

하는 TreeModel은 인터페이스, ListStore, TreeModelFilter에 의해 구현되는

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

, 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을 직접 처리해야한다.

희망이 있습니다.

+0

감사합니다. 나는 그걸보아야 할 것입니다 ... –

+0

@JanHolthuis : 진행 상황을 다시보고 해 주시겠습니까? 난 성공하지 않고 pygobject에 GenericTreeModel 기반 응용 프로그램을 이식하려고합니다. – rumpel

3

그래서 저는이 문제에 잠시 대처 해 왔습니다. 하복 (Havok)가 이미 말했듯이

  • 이 : 다음 GenericTreeModel 더 이상 존재하지 않는 하나는 (그들에게 do_… 명명) 적절한 방법 일반 gtk.TreeModel 인터페이스를 사용하고 무시한다 : 여기 내 결과는

    class TreeModel(GObject.GObject, gtk.TreeModel): 
        def do_get_iter(self, iter, path): 
         … 
         iter.user_data = whatever() 
         return True 
    
  • 맞춤 iter 등을 사용할 때 ListStore 또는 TreeStore에서 상속이 작동하지 않습니다.

  • 통화 정보가있는 저장소가 손상되었습니다 (launchpad:gtk3#1024492 참조).) do_get_iter 메소드가 iter 인수없이 호출되므로 사용자 정의 데이터를 설정할 수 없습니다. 는 "in""out"에서 /usr/share/gir-1.0/Gtk-3.0.giriter 인수에 대한 방향을 변경하고 실행 해결하려면 :

    g-ir-compiler --output=/usr/lib/girepository-1.0/Gtk-3.0.typelib /usr/share/gir-1.0/Gtk-3.0.gir 
    
4

PyGObject 최근 pygtkcompat을 통해 GenericTreeModel 지원을 받았다.

이 그래서 지금 당신이 적어도 시작으로, 호환성 모듈을 사용하여 GenericTreeModels를 마이그레이션 할 수 있어야한다

3.7.91의 수정과 3.7.90의 새로운 기능입니다.