LINUX.ORG.RU

[QT] добавить потомка в treeview

 


0

0

Помогите! Можно ли по средствам QStandardItemModel добавить потомка в дерево.

фрагмент кода:

QModelIndex idx = ui->treeView->selectionModel()->currentIndex();

            //if(DUT->createDevice(&ui->treeView->selectionModel()->currentIndex(), name)){
            if(DUT->createDevice(&idx, name)){
}

далее правлю XML.
bool DUTconfig::createDevice(QModelIndex *idx, QString name){
    //добавляем узел в DUT
    QDomElement dev = getDevice(idx->data().toString());
    //если прибор с таким именем не существует
    if(dev.isNull()){
        QDomElement node = dut.toElement().toDocument().createElement("device");
        node.setAttribute("name", name);
        dut.appendChild(node);
        save();
        //проверим появился ли девайс
        if(!getDevice(name).isNull()){
            return true;
        }else {
            qDebug()<<"Same-thing wrong\n";
        }
    }
    return false;
}

Все хорошо, но можно ли тут же добавить потомка в idx с именем name? На сколько я понимаю, надо использовать idx->model()->insertRow().... Но не догоняю как( именно. Прошу не пинать. Только разбираюсь. Спасибо!

Разобрался. Достаточно передать маму модель:

bool DUTconfig::createDevice(QStandardItemModel* model, QModelIndex idx, QString name){
    //добавляем узел в DUT    
    QStandardItem *child = new QStandardItem(name);
    QStandardItem *itm = model->itemFromIndex(idx);
    itm->insertRow(itm->rowCount(),child);
.....
и дальше по тексту

spike_by
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.