GTK에서 특정 값이 포함 된 행의 ListStore를 어떻게 검색합니까?
-
19-09-2019 - |
문제
나는있다 ListStore
목록을 모델링합니다 Tag
에스. 이 목록은 ListStore
. 내가하고 싶은 것은 듣는 것입니다 TagRemoved
내 이벤트 TagList
수업을하고 제거하십시오 Tag
~로부터 ListStore
이벤트가 트리거되면. 그러나 검색 방법을 찾을 수없는 것 같습니다. ListStore
주어진 행을 포함합니다 Tag
, 그것을 제거 할 수 있도록.
이것을 할 방법이 있습니까?
해결책
ㅏ GtkListStore
상행 GtkTreeModel
원하는 트리 트래버스 작업이 포함 된 인터페이스. 내가 아는 한, 목록/트리 스토어를 검색하는 편의 API는 없으므로 직접 굴려야합니다.
당신은 단순히 a를 반복하고 있기 때문에 GtkListStore
, 당신은 아동/부모 관계를 다루는 모든 API를 무시하고 간단히 사용할 수 있습니다. gtk_tree_model_iter_first()
그리고 gtk_tree_model_iter_next()
목록을 가로 지르기 위해.
또는 이미 상점에서 제거 된 태그의 색인을 이미 알고 있다면 (예 : TagRemoved
이벤트), 당신은 그것을 a로 바꿀 수 있습니다 GtkTreePath
그리고 사용 gtk_tree_model_get_iter()
검색하지 않고 해당 행을 직접 검색합니다.
다른 팁
gtkliststore는 내부적으로 구현됩니다 링크 된 목록 따라서 모델을 직접 스캔해야합니다.
제휴하지 않습니다 StackOverflow