я использую подкласс QAbstractListModel в списке. И я хочу иметь возможность генерировать новую модель списка, которая передается в QML через С++ в зависимости от того, какой элемент был нажат.
каков метод реализации, чтобы определить, какой элемент был нажат в списке?
Я искал в Интернете совсем немного, но я не могу найти лучший способ сделать это.
этот код создает групповой список, который отображается как верхний уровень, и у него есть вложенный список, который отображается под каждым элементом в групповом списке. Вложенный список, очевидно, показывает дочерние элементы группы ... поэтому мне нужен способ добраться до объекта, по которому щелкают, чтобы я мог использовать его в бэкэнде для создания новых списков его дочерних элементов.
код:
import QtQuick 2.4
import QtQuick.Window 2.2
//import ListMode 1.0
Rectangle {
height: 250
width: 140
color: "pink"
//property var aNum: 0
Component {
id: folderDelegate
Item {
width: 140
height: col2.childrenRect.height
Column {
id: col2
anchors.left: parent.left
anchors.right: parent.right
Rectangle {
height: 20
width: parent.width
border.color: "black"
MouseArea {
anchors.fill: parent
onClicked: console.log(folderlist.contentItem) <<== this is not enough
}
Text {
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
id: name1
text: model.Name
}
}
}
}
}
ListView {
id: outer
model: myModel
delegate: groupsDelegate
anchors.fill: parent
}
Component {
id: groupsDelegate
Item {
width: 140
height: col.childrenRect.height
Column {
id: col
anchors.left: parent.left
anchors.right: parent.right
Text {
anchors.horizontalCenter: parent.horizontalCenter
id: t1
font.bold: true
font.underline: true
font.pointSize: 9
text: model.Name
}
ListView {
id: folderlist
model: treemodel.lists[treemodel.modIndex]
delegate: folderDelegate
contentHeight: contentItem.childrenRect.height
height: childrenRect.height
anchors.left: parent.left
anchors.right: parent.right
clip: true
}
}
}
}
}
вместо того, чтобы получать только имя элемента, по которому щелкнули, я хотел бы иметь возможность получить фактический объект, потому что мне нужно извлечь больше данных из объекта, чтобы правильно идентифицировать новых детей.
если бы вы, ребята, могли бы мне помочь, я был бы очень признателен!
Заранее спасибо!