Qt의 설명서가 조금 부족해 보이지만 QLists를 ListView의 모델로 사용하려고합니다. 것은 계층 구조를 나타냅니다. 항목을 클릭 할 때마다 모델이 다른 것과 교환됩니다. QML은 C++ 콜백에서 가져옵니다.QML을 사용하는 QML ListView <QObject*>을 모델로 사용합니다.
class MyObject : public QObject
{
Q_OBJECT
Q_PROPERTY(QString name READ getName WRITE setName)
Q_PROPERTY(QString subtitle READ getSubtitle)
Q_PROPERTY(QList<QObject*> descent READ getChildren NOTIFY childrenUpdated)
...
}
그리고 어떻게 QML에서 사용 :
이
이 목록 항목을 나타내는 객체입니다ListView {
id: list_view
model: myModel
anchors.fill: parent
delegate: Item {
id: row
height: 50
anchors.left: parent.left
anchors.right: parent.right
MouseArea {
anchors.fill: row
onClicked: {
list_view.model = descent;
}
}
Column {
Text { text: name }
Text { text: subtitle }
}
}
}
은 "myModel"모델과 같이, 메인에 설정됩니다
context->setContextProperty("myModel", QVariant::fromValue(folder.getChildren()));
처음 ListView가 나타나면 myModel을 모델로 사용하며 작동합니다. 그러나 항목을 클릭 할 때마다 ListView는 예상되는 항목의 정확한 수를 만듭니다 ... 그러나 속성을 읽을 수는 없습니다!
ListView는 어떻게 생성해야하는지 정확히 알지만 속성을 볼 수 없습니까?
QAbstractItemModel에 대해 들었고 그렇게하지 않으려 고했습니다. 간단한 데이터 (QString 전용)로 작업하고 있기 때문에 '괜찮은 것'을 살펴볼 것입니다! 감사! – Michael