1

だから、私が使用しているのは、ファイルツリーを作成するための QTreeWidget です。ファイルとフォルダを簡単に作成できます。しかし、サブフォルダーについて話すときに問題が発生します。例えば:

Folder1
Folder1/SubFolder1
Folder1/SubFolder1/SubFolder2

サブフォルダーを正確に作成するにはどうすればよいですか? フォルダーを作成するための私のコードは次のとおりです。

void Tree::addFolder(const QString &folderName)
{
    QTreeWidgetItem *item = new QTreeWidgetItem();
    item->setText(0, folderName); // Sets the text.
    m_projectItem->addChild(item); // Adds it to the main path. (It's a QTreeWidgetItem)
    this->expandItem(item); // Expands.
}

別のフォルダー内にフォルダーを追加するには、別の関数 (addSubFolder など) を作成する必要がありますか?

4

1 に答える 1

2

m_projectItem がルート ノードであると想定しています。次のような addFolder メソッドを実装します

QTreeWidgetItem* Tree::addFolder(QTreeWidgetItem* parent, const QString &folderName) {
    QTreeWidgetItem *item = new QTreeWidgetItem();
    item->setText(0, folderName); // Sets the text.
    parent->addChild(item); // Adds it to its parent (It's a QTreeWidgetItem)
    this->expandItem(item); // Expands.
    return item;
}

次に、 addFolder を適切に呼び出してツリーを設定する別のメソッドを実装します-あなたの例を参照すると、最も単純な静的形式でこれが可能です

void Tree::createTree() {
   QWidgetItem* f1  = addFolder(m_projectItem, "Folder1");
   QWidgetItem* sf1 = addFolder(f1, "SubFolder1");
   addFolder(sf1, "SubFolder2");
}

免責事項:私はコードをテストしていません - 私は最近Pythonで似たようなものを実装しました:)

于 2012-08-23T06:22:18.117 に答える