所以,我正在使用的是制作文件树的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)来在另一个文件夹中添加文件夹?
答案 0 :(得分: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中实现了类似的东西:)