在本页

ObjectModel QML Type

定义一组用作模型的项目。更多

Import Statement: import QtQml.Models

属性

附属物业

方法

  • void append(object item)
  • void clear()
  • object get(int index)
  • void insert(int index, object item)
  • void move(int from, int to, int n)
  • void remove(int index, int n)

详细说明

ObjectModel 包含要在视图中使用的可视化项目。在视图中使用 ObjectModel 时,由于 ObjectModel 已包含可视化委托(项目),因此视图不需要委托。

项目可通过index 附加属性确定其在模型中的索引。

下面的示例在ListView 中放置了三个彩色矩形。

import QtQuick 2.0
import QtQml.Models 2.1

Rectangle {
    ObjectModel {
        id: itemModel
        Rectangle { height: 30; width: 80; color: "red" }
        Rectangle { height: 30; width: 80; color: "green" }
        Rectangle { height: 30; width: 80; color: "blue" }
    }

    ListView {
        anchors.fill: parent
        model: itemModel
    }
}

在 ListView 中堆叠三个彩色矩形

另请参阅 Qt Quick 示例 - 视图

属性文档

count : int [read-only]

模型中的项目数。此属性只读。

附加属性文档

ObjectModel.index : int

此附加属性保存此委托在模型中的项目索引。

它附加到委托的每个实例。

方法文档

void append(object item)

在模型末尾添加新的item

objectModel.append(objectComponent.createObject())

另请参阅 insert() 和remove()。

void clear()

清除模型中的所有项目。

另请参阅 append() 和remove()。

object get(int index)

返回模型中index 的项目。这样就可以通过 JavaScript 访问或修改该项目:

Component.onCompleted: {
    objectModel.append(objectComponent.createObject())
    console.log(objectModel.get(0).objectName);
    objectModel.get(0).objectName = "first";
}

index 必须是列表中的一个元素。

另请参阅 append()。

void insert(int index, object item)

index 位置向模型插入一个新的item

objectModel.insert(2, objectComponent.createObject())

index 必须是列表中的现有项目,或者是列表末尾的项目(相当于 append)。

另请参阅 append() 和remove()。

void move(int from, int to, int n = 1)

移动n 项目from 一个位置to 另一个位置。

from 和 to 的范围必须存在;例如,将前 3 个项目移动到模型的末尾:

objectModel.move(0, objectModel.count - 3, 3)

另请参阅 append().

void remove(int index, int n = 1)

从模型中删除n 项目,网址是index

另请参阅 clear().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.