Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QML ListModel:是否允许多个ListModels在屏幕上活动?_Qt_Gridview - Fatal编程技术网

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"})
}