QHash存儲二級model數據 以及遍歷


    Q_INVOKABLE  void setitem(int index, int index2, QVariant it)
    {

        itemlist[index][index2] = it;
        qDebug() <<"findex:" << index<< " sindex:"<<index2 <<","<<itemlist[index][index2]; 
    }


    Q_INVOKABLE  QVariant getitem(int index, int index2)
    {


        qDebug() << itemlist[index][index2];
        return itemlist[index][index2];
    }


signals:

public slots:
private: 
        QHash<int, QHash<int, QVariant>> itemlist;
ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    ListModel{
        id:secondmodels
        Component.onCompleted: {
            secondmodels.append({'text':"hello" ,'sub':[{'itemtxt':"a"},{'itemtxt':"b"}]  });
            secondmodels.append({'text':"hello" ,'sub':[{'itemtxt':"a"}]  });
        }
    }

    ListView{
        model:secondmodels
        anchors.fill: parent
        delegate: ListView{
            property var findex: index
            id:mainview
            width: parent.width
            height: contentHeight
            model:secondmodels.get(index).sub
            delegate: Text{
                id:dele
                height:40;
                width: parent.width;
                text:model.itemtxt +","+mainview.findex
                Component.onCompleted: {
                    Global.setitem(mainview.findex,index,this);
                }
                MouseArea{
                    anchors.fill: parent
                    onClicked: {
                        _EnumItem()
                    }
                }
            }

        }

    }

    function  _EnumItem()
    {
        var flen =secondmodels.count;
        for(var s=0;s<flen;s++)
        {
            var sublen = secondmodels.get(s).sub.count
            for(var i=0;i<sublen;i++)
            {
                var point =Global.getitem(s,i);
                console.log("findex:",s," sublen:",i," point:",point)
            }

        }

    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章