QTreeWidget для дерева файлов и подпапок
Итак, я использую 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) для добавления папок в другие папки?
1 ответ
Решение
Я предполагаю, что 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:)