2011-10-29 64 views
11

Tôi đang học PyGtk. Tôi có một cây treeview đơn giản với 1 cột, tôi nhận được các mục cho cây tre đó từ danh sách.Làm thế nào để nhận được giá trị từ mục được chọn trong treeview trong PyGTK?

Làm cách nào để nhận được giá trị của mặt hàng đã chọn trong treeview?

+0

PS: Đừng quên để chấp nhận (bằng cách nhấp vào "đúng" ở bên trái của câu trả lời) Câu trả lời của tôi nếu nó phù hợp với bạn. Cảm ơn ! –

Trả lời

20

Bạn có thể sử dụng phương thức gtk.TreeView.get_selection() để nhận được gtk.TreeSelection.

Tiếp theo, bạn nên sử dụng phương pháp gtk.TreeSelection.get_selected_rows() để lấy TreeModel (ListStore) và các mục đã chọn đường dẫn.

Sau đó, bạn có thể sử dụng gtk.TreeModel.get_iter() để nhận được lần lặp từ đường dẫn (được trả về theo phương pháp gtk.TreeSelection.get_selected_rows()).

Cuối cùng, bạn có thể sử dụng phương thức gtk.TreeModel.get_value() để nhận giá trị tương ứng với cột và lần lặp trước đó được khôi phục.

Ví dụ:

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

Tuyệt vời, cảm ơn rất nhiều! – shiii

Các vấn đề liên quan