使用Qml创建各种list(二)创建一个简单的动态列表

本文介绍了一个简单的QML应用案例,展示了如何通过ListModel组件实现列表项的动态添加和移除功能,并提供了完整的QML代码实现。

这里简单实现一个具有动态添加和清除属性的列表。

实现的主要方法使用model的append和clear属性。

PS有个小记录,就是listmodel中的元素如果不为空的话,默认是在屏幕直接显示的,其属性和属性名称并不需要预先定义

 

 

QML使用列表有多种方式,以下为你详细介绍: ### 使用 JavaScript 数组定义列表QML 的 JavaScript 环境里,能够使用 JavaScript 数组来定义列表,并且可以执行清空列表、查询列表是否包含指定元素以及追加元素等操作。示例代码如下: ```javascript import QtQuick Item { property var myList: ["apple", "banana", "cherry"] Component.onCompleted: { // 追加元素 myList.push("date"); console.log("追加元素后的列表: ", myList); // 查询列表是否包含指定元素 var containsBanana = myList.includes("banana"); console.log("列表是否包含 'banana': ", containsBanana); // 清空列表 myList = []; console.log("清空后的列表: ", myList); } } ``` ### 使用 ListView 显示列表数据 ListViewQt Quick (QML) 中的列表控件,用于创建可滚动的列表。每个列表项依据模型(Model)创建,它可以是静态列表或者动态数据集合,视图(View)会将这些数据以列表形式展现出来,而代理(Delegate)则定义了每个数据项在视图中的渲染方式。示例代码如下: ```qml import QtQuick import QtQuick.Window import QtQuick.Controls ApplicationWindow { visible: true width: 640 height: 480 title: "ListView Example" // 模型定义,包含简单的字符串列表 ListModel { id: myModel ListElement { name: "Item 1" } ListElement { name: "Item 2" } ListElement { name: "Item 3" } // ...可以添加更多的列表元素... } // ListView 的定义 ListView { anchors.fill: parent // ListView 填满父元素 model: myModel // 设置模型为上面定义的 myModel delegate: Text { // 定义代理显示模型中的数据 text: name // 显示 name 属性的值 font.pointSize: 20 } } } ``` ### 使用多种类型的模型 ListView 可以显示由如 ListModel 和 XmlListModel 等内置 QML 类型创建的模型的数据,也能使用在 C++ 中定义的、继承自 QAbstractItemModel 或 QAbstractListModel 的自定义模型类的数据。示例代码如下: ```qml import QtQuick import QtQuick.Window import QtQuick.Controls ApplicationWindow { visible: true width: 640 height: 480 title: "ListView with Different Model" // 使用 ListModel ListModel { id: myListModel ListElement { value: "Value 1" } ListElement { value: "Value 2" } } ListView { anchors.fill: parent model: myListModel delegate: Text { text: value font.pointSize: 20 } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值