在我的应用程序中,我有一个管理我的树的类(简而言之,就像一个文件系统,其中root包含文件夹,包含文件夹等,还包含文件)。我现在的问题是我有重复的列表,我。即管理文件系统的类,以及TreeView / TreeModel,我必须使用数据创建树。这是必需的,因为我的类比树中显示的属性有更多的方法和属性。例如,现在,当我删除文件时,我更新了我的内部树,并且还必须从TreeModel中删除该项。
是否可以告诉TreeModel / TreeView使用我自己的类?当然,我认为我将不得不修改管理我的树的类,但我想要的是当我将一个文件添加到我的类中的文件夹时,它会自动添加到TreeView中,同样的当我删除它,或修改它的名称或属性。
使用Python 2.7.12,Ubuntu 16.04,Gtk3(gi.repository,glade等)
答案 0 :(得分:2)
您可以让您的类实现TreeModel接口,并直接将其用作模型,而不必在两个类之间同步!
让您的课程延长Gtk.TreeModel
,并实施其virtual methods。