Gtkでは、どのように私は特定の値を含む行のためのListStoreを検索するには?
-
19-09-2019 - |
質問
私はListStore
sのリストをモデル化Tag
を持っています。このリストは、ListStore
から離れて変更されることがあります。私は何をしたいのは、私のTagRemoved
クラスでTagList
イベントに耳を傾け、そしてイベントがトリガされたときTag
からListStore
を削除しています。しかし、私はそれを削除することができるように、与えられたListStore
を含む行のためのTag
を検索する方法を見つけるように見えることはできません。
これを実行する方法はありますか?
解決
GtkListStore
は、あなたが望むツリートラバーサルの操作が含まれGtkTreeModel
インタフェースを実装します。私の知る限りでは、あなたがあなた自身をロールバックする必要がありますので、リスト/ツリーストアを検索するための便利なAPIがありません。
GtkListStore
を反復処理しているので、は、子/親関係を扱うAPIのすべてを無視して、単にリストを横断するgtk_tree_model_iter_first()
とgtk_tree_model_iter_next()
を使用することができます。
また、あなたはすでに店(例えば、あなたのTagRemoved
イベントから)、あなたはGtkTreePath
にそれを回して直接検索することなく、問題の行を取得するためにgtk_tree_model_get_iter()
を使用することができますで削除タグのインデックスを知っていれば。
他のヒント
リンクリストがそうのように、
GtkListStoreは内部で実装されています自分でモデルをスキャンする必要があります。
所属していません StackOverflow