QTreeWidget subchild

0

Hej,

Potrzebuje zrobić treeview w następującej postaci: Root ma childa, child będzie miało wsłasnego childa, a ten 2 child może mieć swoje childy. Mam taką klasę:

class Item
{
public:
    Item(QString Root, QString Des, QVector<QString> ch_f, QVector<QString> ch_s, QVector<QString> ch_t);
    QString getRoot();
    QString getDescription();
    QVector<QString> getChild_first();
    QVector<QString> getChild_second();
    QVector<QString> getChild_third();
private:
    QString root;
    QString description;
    QVector<QString> child_first;
    QVector<QString> child_second;
    QVector<QString> child_third;

};

Itemy trzymam w QVector<Item>. Mam takie metody:

void MainWindow::addItems(QVector<Item> items)
{
    for(int i=0;i<items.size();i++)
    {
        addRootAndChild(items.at(i));
    }
}

void MainWindow::addRootAndChild(Item item)
{
    QTreeWidgetItem *itm = new QTreeWidgetItem(ui->treeWidget); 
    
    itm->setText(0,item.getRoot());
    itm->setText(1,item.getDescription());
    ui->treeWidget->addTopLevelItem(itm);
    for(int i=0;i<item.getChild_first().size();i++)
    {
    setFirstChild(itm, item.getChild_first().at(i));
    }
}

void MainWindow::setFirstChild(QTreeWidgetItem *parent, QString child_first)
{
    QTreeWidgetItem *itm = new QTreeWidgetItem();
    itm->setText(0, child_first);
    parent->addChild(itm);
    setSecondChild(????)             //???????
}

Nie wiem jak sobie poradzić z dodaniem childa do childa.

0

zamiast się wysilać użyj: http://doc.qt.io/qt-5/qstandarditemmodel.html gdzie to wszystko masz za darmo.

Zresztą to co robisz jest źle, bo po prostu nie doczytałeś (czytałeś) dokumentacji QTreeWidget.

1 użytkowników online, w tym zalogowanych: 0, gości: 1