を含むプロジェクトに取り組んでいますQTreeWidget
。このウィジェットには、子ノードまたは他の兄弟ノードを持つ親ノードがあります。各ノードにはID
、名前だけでなく整数の形式で一意になります。
さて.....ディスク内のすべてのノードを保存するために使用できる、または使用すべき方法QTreeWidget
と、それらを読み戻す方法?????
私がすることは、ツリーを走査し、各ノードを sqlite DB に保存することです。ツリーにあるのとまったく同じ順序で、すでにそれを行うことができます。しかし......QTreeWidget
およびその関連QTreeWidgetItem
オブジェクトには、他のノードを挿入するために使用できる一意のインデックスがありません。
ツリーを再構築するとき、子は親/祖先 (それまでにツリーに存在する) に接続する必要があります。そのために、配列内のID
(parent name, ) のように、既にツリーに追加した Parent とその s を追跡します。は、 /内のノードとしての場所とは関係がないことにparentID
注意してください。これは自分で作成し、 /が何も提供しないため、ある種のタグと同じように、ノードの名前とともに sqlite db に保存されます。parentID
QTreeWidget
WidgetItem
QTreeWidget
QTreeWidgetItem
正しい親を決定するには
ParentID
sqlite DB から取得し、- 配列または
QTreeWidget
同じものを検索しID
、 - でその親を選択し
QTreeWidget
、 - の親に子ノードとして sqlite db アイテムを追加します
treeview
。
しかし、ノードが追加されるたびに検索が行われ、QTreeWidget
/内にWidgetItem
ノードを挿入するために使用できるインデックスが欠落しているため、この方法は不器用に感じます。
これはもっとエレガントで、リソースをあまり消費しない方法で行うべきだと私は知っています。私は正確なコーディング例を探しているわけではありませんが、 fromQTreeWidget
およびから使用するメソッドとプロパティのアイデアとヒントを探していQTreeWidgetItem
ます。
何か案は?