Qt QML ListModel:是否允许多个ListModels在屏幕上活动?
我可以做Qt QML ListModel:是否允许多个ListModels在屏幕上活动?,qt,gridview,Qt,Gridview,我可以做gridv.model.append(element),它将元素添加到显示的GridView中。 但是,我不能执行listv.model.append(element),它不会绘制任何内容(虽然组件代码是有效的),但同时,modeltwo.count显示元素已添加到模型中矩形被添加来检查布局(目前由RowLayout管理),它似乎正在工作;其他布局事项(想想锚定,x/y/z)没有帮助 QT 5.3,QT快速2 从我的观点来看,我现在只能想,modelone将所有ListModel逻辑关联
gridv.model.append(element)
,它将元素添加到显示的GridView中。
但是,我不能执行listv.model.append(element)
,它不会绘制任何内容(虽然组件代码是有效的),但同时,modeltwo.count
显示元素已添加到模型中<代码>矩形被添加来检查布局(目前由RowLayout管理),它似乎正在工作;其他布局事项(想想锚定
,x/y/z
)没有帮助
QT 5.3,QT快速2
从我的观点来看,我现在只能想,modelone
将所有ListModel逻辑关联到它所创建的GridView,因此ListModel不能再使用ListView了。听起来不合逻辑,但已经花了两个小时
在处理多个视图时,是否有必要创建自定义模型?我认为问题出在代理上,因为我尝试了您的示例并进行了一些修改,结果成功了。 代码如下:
GridView {
id: gridv
model: ListModel {
id: modelone;
}
delegate: componentId
}
Rectangle {
id: whattheproblem
color: red
ListView {
id: listv
model: ListModel {
id: modeltwo;
}
delegate: anotherComponentId
}
}
}
我用Qt5.3.1试过了
Item {
width: 200
height: 200
GridView {
id: gridv
width: 200
height: 100
model: ListModel {
id: modelone;
}
delegate: Text { text: name }
}
Rectangle {
id: whattheproblem
anchors.top: gridv.bottom
ListView {
id: listv
model: ListModel {
id: modeltwo;
}
delegate: Text { text: name }
}
}
Button {
anchors.left: parent.left
anchors.bottom: parent.bottom
text: "Add to Grid"
onClicked: gridv.model.append({name: "grid"})
}
Button {
anchors.right: parent.right
anchors.bottom: parent.bottom
text: "Add to List"
onClicked: listv.model.append({name: "list"})
}