Python - Gtk.TreeView与Gtk.ListStore获得选定的索引

时间:2014-05-10 17:54:59

标签: python list gtk3 gtktreeview

我想将项目存储在gtk列表中,我决定使用Gtk TreeView作为List。因为我是python和gtk的新手,我想将我的元素作为字符串表示存储在TreeView中,并在单独的python列表中存储相应的对象。

因此,如果我删除Gtk列表中的项目(通过键事件),我必须能够确定所选行索引以删除正确的python-list元素。

我的实际问题是:如何确定Gtk.TreeView中所选行的索引?

感谢您的帮助!

PS:我正在使用Python 3和GTK 3

1 个答案:

答案 0 :(得分:4)

使用Gtk.TreeViewSelection。你可以从Gtk.TreeView中获取它(假设你的GtkTreeModel(GtkListStore或GtkTreeStore)构造函数中有id列)。

    from gi.repository import Gtk

    def yourcallback ( selection ):
       model,list_iter = selection.get_selected ()
       if list_iter != None:
       # Debugging mode, uncomment to activate
       # print "row index = " + model[list_iter][column_number_that_you_want]


  # alternate
  # def yourcallback (path, column, data):
  #   ........


    ..........
    yourtvselection           = yourtv.get_selection ()        
    yourtvselection.connect ( "changed" , yourcallback)
    # alternative signal
    # yourtv.connect ("row-activated", yourcallback)