2011-10-29 59 views
11

我在學習PyGtk。我有一個簡單的樹狀視圖,有1列,我從列表中獲得該樹狀視圖的項目。如何在PyGTK的treeview中從選定的項目中獲取值?

如何在treeview中獲取所選項目的值?

+0

PS:如果它適合你不要忘了接受(通過點擊「正確」答案的左邊)我的答案。謝謝 ! –

回答

20

您可以使用gtk.TreeView.get_selection()方法獲取gtk.TreeSelection

接下來,您應該使用gtk.TreeSelection.get_selected_rows()方法獲取TreeModel(ListStore)和所選項目 路徑。

然後,您可以使用gtk.TreeModel.get_iter()以便從路徑中獲取iter(由gtk.TreeSelection.get_selected_rows()方法返回)。

最後,您可以使用gtk.TreeModel.get_value()方法來獲取與以前恢復的列和iter對應的值。

例子:

def onSelectionChanged(tree_selection) : 
    (model, pathlist) = tree_selection.get_selected_rows() 
    for path in pathlist : 
     tree_iter = model.get_iter(path) 
     value = model.get_value(tree_iter,0) 
     print value 

listStore = gtk.ListStore(int) 
treeview = gtk.TreeView() 
treeview.set_model(listStore) 
tree_selection = treeview.get_selection() 
tree_selection.set_mode(gtk.SELECTION_MULTIPLE) 
tree_selection.connect("changed", onSelectionChanged) 
+0

太棒了,非常感謝! – shiii

相關問題