// Handler of "changed" signal of TreeView's selection func SelectionChanged(s *gtk.TreeSelection) { // Returns glib.List of gtk.TreePath pointers rows := s.GetSelectedRows(ListStore) items := make([]string, 0, rows.Length()) for l := rows; l != nil; l = l.Next() { path := l.Data().(*gtk.TreePath) iter, _ := ListStore.GetIter(path) value, _ := ListStore.GetValue(iter, 0) str, _ := value.GetString() items = append(items, str) } Entry.SetText(fmt.Sprint(items)) }