Я быстро работал над второстепенным (впервые) приложением и столкнулся с препятствием - как получить выбранную строку (данные) из TreeView? Данные в TreeView передаются из списка файлов в каталоге, и мне нужно знать, какие строки были выбраны (и, следовательно, какие файлы были). Каков наилучший способ сделать это?
Вот текущий код:
self.treeview = self.builder.get_object("treeview")
select = self.treeview.get_selection()
select.connect("changed", self.on_tree_selection_changed)
def on_tree_selection_changed(selection):
model, treeiter = self.treeview.selection-get()
if treeiter != None:
print "You selected", model[treeiter][0]
См. Здесь: http://python-gtk-3-tutorial.readthedocs.org/en/latest/treeview.html
. Вы можете получить выборку по событию: подключение объекта выделения к событию:
select = tree.get_selection()
select.connect("changed", on_tree_selection_changed)
def on_tree_selection_changed(selection):
model, treeiter = selection.get_selected()
if treeiter != None:
print "You selected", model[treeiter][0]
Редактировать: чтобы установить это в классе окна, используйте следующий код:
class MyTreeView....
....Other Stuff...
self.treeview = self.builder.get_object("treeview")
select = self.treeview.get_selection()
select.connect("changed", self.on_tree_selection_changed)
def on_tree_selection_changed(self, selection):
model, treeiter = selection.get_selected()
if treeiter != None:
print "You selected", model[treeiter][0]
Редактировать2: если вы хотите иметь несколько Выбранные строки необходимо использовать Gtk.TreeSelection.get_selected_rows()
, который возвращает список Gtk.TreePath
экземпляров всех выбранных строк.