如何在 Treeview 中向上或向下移动选择?
这个想法是我可以有一个向上和向下按钮来将选择向上或向下移动一行。
我的 Treeview 正在使用 ListStore。不确定这是否重要。
如何在 Treeview 中向上或向下移动选择?
这个想法是我可以有一个向上和向下按钮来将选择向上或向下移动一行。
我的 Treeview 正在使用 ListStore。不确定这是否重要。
首先,我将使用我熟悉的 C 代码。如果您在将其翻译成 Python 时遇到问题,请说出来,我会尽力提供帮助。
您要为此使用的类是GtkTreeSelection
. 基本上,你要做的是:
gtk_tree_view_get_selection
)GtkTreeIter
( gtk_tree_selection_get_selected
)。gtk_tree_model_iter_next/previous
)gtk_tree_selection_select_iter
)在我的小测试程序中,“向下”按钮的回调如下所示:
static void on_down(GtkWidget *btn, gpointer user_data)
{
GtkTreeSelection *sel = GTK_TREE_SELECTION(user_data);
GtkTreeModel *model;
GtkTreeIter current;
gtk_tree_selection_get_selected(sel, &model, ¤t);
if (gtk_tree_model_iter_next(model, ¤t))
gtk_tree_selection_select_iter(sel, ¤t);
}
(这里是完整的程序供参考)
连接时,我将 TreeSelection 对象传递给回调。
编辑:这就是 Samuel Taylor 将上述内容翻译成 Python 的方式:
TreeView = Gtk.TreeView()
list = Gtk.ListStore(str, str)
TreeView.set_model(list)
def down(widget):
selection = TreeView.get_selection()
sel = selection.get_selected()
if not sel[1] == None:
next = list.iter_next(sel[1])
if next:
selection.select_iter(next)