2012-12-27 2 views
1

TreeView를 ListStore 객체와 연결했습니다. 함수 중 하나가 ListStore.get_iter_next()를 호출합니다. 매번 ListStore 데이터가 변경되기 때문에 iter가 메모리 누수의 원인인지 의심 스럽습니다.파이썬에서 gtk.ListStore 플래그를 변경하거나 보는 방법

목록 저장소에 gtk.TREE_MODEL_ITERS_PERSIST 플래그가 설정되어 있는지 확인하고 TreeModel.get_flags() 설명서에 설명 된대로 설정을 해제해야합니다.

어떻게하면됩니까?

답변

1

당신이 단지에 비트 연산을 사용 나타날 것 - 예를 들면 :

>>> a = 3 # just some number 
>>> format(a, 'b') # display as a bit string so we can see what's going on 
'11' 
>>> a & 1 # check first bit is set 
1 
>>> a & 2 # check second bit is set 
2 
>>> a ^= 1 # unset a bit 
>>> format(a, 'b') # display for checking again... 
'10' 

을 대신 gtk.TREE_MODEL_ITERS_PERSIST을 사용 제외하고 ...이 문제에 대한 올바른 접근 방식인지 - 잘 모르겠어요 - 당신이 그것을 어떻게 풀어 낼 수 있었는지에 관해서는 당신의 직접적인 질문에 답합니다.

+0

내가 의미하는 바는 정확히 플래그를 설정하는 방법입니다. store.set_flag (store.currentFlags^gtk.TREE_MODEL_ITERS_PERSIST)와 같은 것을 기대하고 있습니다. 그러나 나는 그런 기능을 찾을 수 없었다. – Kashif

+0

@Kashif Ummm - 당신이 의도하지 않은 것일 수도 있습니다 - 당신은'get_flags()'가 반환하는 속성을보고 직접 수정할 수 있습니다. 그러나이 시점에서 나는 당신이 틀림없이 * ... –

+0

'get_flags()'에 대한 문서는 ListStore가 지원하는 플래그 세트라고 – Kashif

관련 문제