Как получить родительское имя выбранного элемента в treeView QML

Мое древовидное представление отображается правильно, но когда я щелкаю элемент в дереве, я не могу получить родительское имя.

Мой код QML можно найти ниже.

TreeView {
    id:treeviewID
    anchors.fill: parent
    model: theModel
    style: styleTreeView
    selection: ItemSelectionModel{
        id:sel
        model: theModel
    }
    headerVisible : true
    selectionMode: SelectionMode.SingleSelection

    onDoubleClicked:{

        console.log("parent Name of the Item selected : ",?????)       

    }

    TableViewColumn {
        role: "name_role"
        title: valueSelected
    }
}

person aryan    schedule 02.11.2015    source источник
comment
Не могли бы вы показать нам свою модель?   -  person Tarod    schedule 05.11.2015
comment
Я решил проблему, я добавляю функцию в свою модель С++, когда я получаю QModelIndex. Думаю, вы !!   -  person aryan    schedule 06.11.2015
comment
Большой! Пожалуйста, опубликуйте свой ответ и отметьте его как правильный ;) Удачного кодирования!   -  person Tarod    schedule 06.11.2015


Ответы (1)


Я решил проблему, и это мое решение:

TreeView {
    id:treeviewID
    anchors.fill: parent
    model: theModel
    style: styleTreeView
    selection: ItemSelectionModel{
        id:sel
        model: myModel
    }
    headerVisible : true
    selectionMode: SelectionMode.SingleSelection

    itemDelegate: Rectangle {
            id:r
            height: 20
            color:"transparent"       

            MouseArea{

                anchors.fill: parent
                onClicked:{
                   var indexSelected = styleData.index ;
                   var indexParent   = indexSelected.parent;
console.log("parent name is ",myModel.getParentName(indexParent));

                 }

    TableViewColumn {
        role: "name_role"
        title: valueSelected
    }
}

МояМодель это:

TreeViewModel::TreeViewModel(QObject *parent) : QStandardItemModel(parent)
{ }
/**
 * @brief TreeViewModel::getParentName
 * @param itemIndex
 * @return string: name of parent item
 */
QString TreeViewModel::getParentName(const QModelIndex &itemIndex){
    QVariant value1 = itemIndex.data(Qt::DisplayRole);
    if(value1.isValid())
        return  value1.toString();
    else
        return QString();
}
person aryan    schedule 09.11.2015