10

それ、どうやったら出来るの?実際、私の主な目標は、どのチェックボックスがチェックされているかを取得することQTreeWidgetです。しかし、あなたたちが私を助けてくれれば、これを行うことができます。ええと、私は再び私を与える方法を見つけることができないQList<QTreeWidgetItem *>ので、リスト全体に行き、チェックボックスがチェックされているかどうかを確認することができました(奇妙な文ですね?)。 QTreeWidget::selectedItems()私が望むことをしません。実際には、選択された項目を取得します (これは 1 つだけの可能性があります。したがって、ここで itemS が何を意味するのかわかりません。とにかく間違っている可能性があります)。

私の今の主な目標はQTreeWidget、そのアイテムでやりたいことを何でもできるようになることです.

前もって感謝します。

4

3 に答える 3

27

ツリーを扱っているため、API はツリー構造の にアクセスできるように設計されていますQTreeWidgetItemQTreeWidgetItemしたがって、Qt の API を介して直接すべてのものに直接アクセスする直接的な方法はありません。ただし、これを行うには次の 2 つの方法があります。

1) すべてのアイテム (または関心のあるすべてのアイテム) が「トップレベル」の場合、次のようなことができます。

for( int i = 0; i < tree->topLevelItemCount(); ++i )
{
   QTreeWidgetItem *item = tree->topLevelItem( i );

   // Do something with item ...
}

2) ツリー内のすべてのアイテムとそのアイテムの子にアクセスする必要がある場合は、再帰的なアプローチが適している可能性があります。

doStuffWithEveryItemInMyTree( tree->invisibleRootItem() );

void doStuffWithEveryItemInMyTree( QTreeWidgetItem *item )
{
    // Do something with item ...

    for( int i = 0; i < item->childCount(); ++i )
        doStuffWithEveryItemInMyTree( item->child(i) );
}
于 2012-04-03T02:20:37.700 に答える