QTreeWidget subchild

QTreeWidget subchild
E8
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 7 lat
  • Postów:33
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ę:

Kopiuj
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:

Kopiuj
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.

MarekR22
Moderator C/C++
  • Rejestracja:ponad 17 lat
  • Ostatnio:3 minuty
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.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 1x, ostatnio: MarekR22

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.