私はQTreeWidget
を含むプロジェクトに取り組んでいます。このウィジェットには、子ノードまたは他の兄弟ノードを持つ親ノードがあります。各ノードには、名前の他に整数形式のユニークなID
が添付されます。QTreeWidgetとPyQt:ファイルからデータを保存して読み込む方法
今、..... QTreeWidget
のすべてのノードをディスクに保存するにはどのような方法が必要ですか?
私がやることは、ツリーをたどって各ノードをsqlite DBに保存することです。私はすでにそれを木の中と同じ順序で行うことができます。しかし...... QTreeWidget
とそれに関連するQTreeWidgetItem
オブジェクトには、他のノードを挿入するために使用できるuniqインデックスはありません。
私がツリーを再構築するとき、子は親/祖先(それがツリーに存在する)に接続する必要があります。これを行うには、配列内に(親の名前、parentID
)のような、既にツリーに追加されている親とそれらのID
を追跡します。 parentID
は、QTreeWidget
/WidgetItem
の中のノードとしての位置とは何の関係もないことに注意してください。これは自分で作成し、QTreeWidget
/QTreeWidgetItem
は何も供給していないので、何らかのタグのようにノードの名前をsqlite dbにまとめて格納します。 QTreeWidget
でその親を選択I
- は
- 、
- が同じ
ID
の配列又はQTreeWidget
を検索、SQLiteのDBからParentID
を取る 正しい親を決定するために
-
treeview
の親ノードにsqlite dbアイテムを子ノードとして追加します。なぜなら、ノードが追加されるたびに検索しているため、私は、ノードの周りに挿入するために使用することができますQTreeWidget
/WidgetItem
内部の欠落インデックスのの
、
しかし、それはこのよう不器用な感じ、。
これははるかにエレガントでリソースの消費が少ないことがわかっています。 正確なコーディング例は探していませんが、使用するメソッドとプロパティのアイデアやヒントについては、QTreeWidget
とQTreeWidgetItem
から詳細を探しています。
アイデア?