Treeview で選択範囲を上下に移動するにはどうすればよいですか?
アイデアは、選択範囲を 1 行上または 1 行下に移動するための上下ボタンを使用できるということです。
私の Treeview は ListStore を使用しています。それが重要かどうかはわかりません。
Treeview で選択範囲を上下に移動するにはどうすればよいですか?
アイデアは、選択範囲を 1 行上または 1 行下に移動するための上下ボタンを使用できるということです。
私の 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)