Accessing item delegate by model index or why Quick sucks when working with models?



  • If I work with Itemdelgate I have proprty model. but how to access property model from a component in model with different index?
    Do I have to write a function which returns model data on C++ side?


  • Moderators

    @Kofr model properties are accessible throughout the delegates.
    Your question is quite confusing. Can you post an example of what you are trying to do ?



  • @p3c0 I do not have a si,ple one example.
    I have item delegate 1 item delegate 2.
    I want to get data of item delegate 2 from inside item delegate 1. So I have to use QVariant QAbstractItemModel::data(const QModelIndex &index, int role = Qt::DisplayRole) const manualy from qml.
    And I get problem with updating data as rightCellInput: taskEditLayout.fullMdl.data(taskEditLayout.indx, DataModel.TaskNameRole) does not update binding when data is changed.


  • Moderators

    @Kofr And what are item delegates ?



  • @p3c0 I have StackView with InitialItem with TreeView which consist of delegates. On Click on delegate in TreeView it pushes to StackView Just another Component "edit window". In this "edit window" there is button to add child to current delegate item (we have tree model). Once I add a child I want the "edit window" of new child to be pushed to stack. But here as I do push from delegate 1 I am not able to pass model property of new delegate. (stack.push(editWndw, {"mdl": taskEditLayout.mdl, "fullMdl": taskEditLayout.fullMdl, "indx": indx}) - here mdl is supposed to be model property of new delegate 2, but Iam not able to get this from delgate 1.


  • Moderators

    @Kofr Well in that case instead of passing model object to different components, how about making it global property accessible from everywhere?
    For eg.:
    property QtObject myModel: treeview.model



  • @p3c0 said:

    treeview.model

    You talk of full model when I need a property attached to delegates.
    may be it is possible to change current delegate somehow.


  • Moderators

    @Kofr Sorry but I'm unable to undertand the scenario. Is model your own custom property inside delegate ?



  • @p3c0 I am talking about this

    ListView {
        id: view
        anchors.fill: parent
        model: RoleEntryModel {}
        focus: true
        delegate: ListDelegate {
            text: 'hsv(' +
                  Number(model.hue).toFixed(2) + ',' +
                  Number(model.saturation).toFixed() + ',' +
                  Number(model.brightness).toFixed() + ')'
            color: model.name
        }
        highlight: ListHighlight { }
    }
    

    where hue, saturation, brightness are roles of the model.


  • Moderators

    @Kofr So is it that you want to access the roles (namely hue, saturation, brightness) values from outside of this ListView delegate ? If so then did you accessing ListVIew model from outside ? Once you get hold of it the data can be accessed too.



  • @p3c0 said:

    @Kofr So is it that you want to access the roles (namely hue, saturation, brightness) values from outside of this ListView delegate ? If so then did you accessing ListVIew model from outside ? Once you get hold of it the data can be accessed too.

    code above is just example, not my case. what I need is to get model.roleName of delegate j when I work in delegate i


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.