2

ツリー ビューは正しく表示されますが、ツリー内のアイテムをクリックしても、親の名前を取得できません。

私の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
    }
}
4

1 に答える 1

0

私は問題を解決しました。これが私の解決策です:

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
    }
}

MyModel は次のとおりです。

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();
}
于 2015-11-09T09:14:51.680 に答える