Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как просто создать древовидную структуру с собственным типом?
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
sindbad07
Доброго времени суток. У меня определен свой тип (структура), мне надо просто сделать иерархический список с этим типом (дерево), смотрел инфу про контейнеры, там такого не нашел, как по простому можно это сделать?
kibsoft
Не совсем понял задачу, но может быть делать QList в QList и т.д.?
sindbad07
Цитата(kibsoft @ 18.5.2010, 17:49) *
Не совсем понял задачу, но может быть делать QList в QList и т.д.?
Может и так, просто надо хранить данные таким макаром:
- элемент 1
     - элемент 2
     - элемент 3
           - элемент 4
     - элемент 5

и т.д.

Litkevich Yuriy
Прийдётся сделать свой класс примерно такого толка:
class TreeItem
{
public:
    TreeItem(const TreeItem *aparent = 0)
    {
        parent = aparent;
    }
  ~Tree()
    {
        qDeleteAll(children);
    }
  
    append(TreeItem *tree)
    {
        children.append(tree);
        tree->parent = this;
    }

    QVector<TreeItem *> children() const;
    TreeItem *parent() const;

private:
    QVector<TreeItem *> children;
    TreeItem *parent;
};

Использовать так:
TreeItem *parentItem = new TreeItem();
// Variant 1
TreeItem *child1 = new TreeItem();
parentItem->append(child1);
// Variant 2
TreeItem *child2 = new TreeItem(parentItem);
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.