QTreeWidget
이 포함 된 프로젝트에서 작업하고 있습니다. 이 위젯에는 하위 노드가있는 상위 노드와 다른 형제 노드가 있습니다. 각 노드에 첨부 된 이름은 정수와 정수 형식의 고유 한 ID
이됩니다.QTreeWidget 및 PyQt : 파일에서 데이터를 저장하고 다시 읽는 방법
..... 이제 QTreeWidget
의 모든 노드를 디스크에 저장하는 데 사용할 수있는 방법은 무엇이며 사용해야합니까?
내가 할 수있는 것은 트리를 가로 지르고 각 노드를 sqlite DB에 저장하는 것이다. 나는 나무에있는 것과 똑같은 순서로 이미 그것을 할 수 있습니다. ...... QTreeWidget
및 관련 QTreeWidgetItem
개체에는 다른 노드를 삽입 할 때 사용할 수있는 유니크 인덱스가 없습니다.
트리를 다시 작성할 때 하위 항목은 부모/조상 (트리가 트리에 있음)에 연결해야합니다. 그렇게하기 위해서 나는 배열 안에 (부모 이름, parentID
) 같은 나무에 이미 추가 된 부모와 그들의 ID
을 추적합니다. parentID
은 QTreeWidget
/WidgetItem
안에있는 노드로 위치와 아무런 관련이 없습니다. 그것은 나 자신에 의해 생성되고 어떤 종류의 태그처럼 QTreeWidget
/QTreeWidgetItem
이 제공하지 않기 때문에 sqlite db를 노드의 이름과 함께 insight에 저장합니다.
QTreeWidget
에- 가 SQLite는 DB에서
ParentID
가지고 올바른 부모, - 배열 또는 같은
ID
의QTreeWidget
검색을 확인하려면 -
treeview
에 부모 노드에 sqlite db 항목을 자식 노드로 추가하십시오.
그러나 때문에 검색의, 노드가 추가되고 있기 때문에 주위에 노드를 삽입 사용할 수있는 QTreeWidget
/WidgetItem
내부에 누락 된 인덱스의 때마다이 방법을 서투른 느낀다.
나는 이것이 훨씬 더 우아하고 자원 집약적이어야한다는 것을 알고있다. 정확한 코딩 예제를 찾고 있지는 않지만, 사용하려는 메서드 및 속성에 대한 아이디어와 힌트를 더 얻으려면 QTreeWidget
과 QTreeWidgetItem
에서 더 많이 찾으십시오.
아이디어가 있으십니까?