我工作的一個包含QTreeWidget
項目。該小部件將具有包含子節點和其他兄弟節點的父節點。連接到每個節點將是一個整數以及名稱形式的唯一ID
。QTreeWidget和PyQt的:方法保存和讀取數據回從文件
現在.....可以或者我應該用什麼樣的方法來保存所有的QTreeWidget
到磁盤的節點以及如何閱讀它們放回?????
我會做的是遍歷樹和每個節點保存到一個SQLite數據庫。我已經可以按照與樹中的順序完全相同的順序來執行此操作。但是...... QTreeWidget
及其相關的QTreeWidgetItem
對象沒有uniq索引,您可以使用它來插入其他節點。
當我重建樹,童車必須附着到他們的父母/祖先(其通過隨後在樹中存在)。爲此,我跟蹤已經添加到樹中的父母及其父母及其ID
,如數組中的父母(父母名稱,parentID
)。請注意,parentID
與位置QTreeWidget
/WidgetItem
內的節點無關。它是由我自己創建的,並且將sqlite db allong與節點的名稱一起存儲,就像某種標籤一樣,因爲QTreeWidget
/QTreeWidgetItem
不提供任何標籤。
爲了確定正確的父我
- 採取從源碼DB中
ParentID
, - 查詢的陣列或
QTreeWidget
該相同ID
, - 在
QTreeWidget
選擇該父, - 將sqlite數據庫項目作爲子節點添加到
treeview
中的父項目中。
但它的每個節點被添加,因爲QTreeWidget
/WidgetItem
我可以使用周邊插入節點內缺失索引的時間感到笨拙這種方式,因爲搜索的。
我知道這應該做得更優雅,資源更少。 我不是在尋找確切的編碼例子,而是更多的想法和提示的方法和屬性使用從QTreeWidget
和QTreeWidgetItem
。
任何想法?