マイナー(初回)アプリですばやく作業していて、ハードルがあります-選択した行(データ)を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]
_
Edit2:複数の行を選択したい場合、Gtk.TreeSelection.get_selected_rows()
を使用する必要があります。これは、選択したすべての行の_Gtk.TreePath
_インスタンスのリストを返します。