QML基础模型(Basic Model)
最基本的分离数据与显示的方法是使用Repeater元素。它被用于实例化一组元素项,并且很容易与一个用于填充用户界面的定位器相结合。
最基本的实现举例,repeater元素用于实现子元素的标号。每个子元素都拥有一个可以访问的属性index,用于区分不同的子元素。在下面的例子中,一个repeater元素创建了10个子项,子项的数量由model属性控制。对于每个子项Rectangle包含了一个Text元素,你可以将text属性设置为index的值,因此可以看到子项的编号是0~9。
import QtQuick 2.0Column {spacing: 2Repeater {model: 10Rectangle {width: 100height: 20radius: 3color: "lightBlue"Text {anchors.centerIn: parenttext: index}}}
}

这是一个不错的编号列表,有时我们想显示一些更复杂的数据。使用一个JavaScript序列来替换整形变量model的值可以达到我们的目的。序列可以使用任何类型的内容,可以是字符串,整数,或者对象。在下面的例子中,使用了一个字符串链表。我们仍然使用index的值作为变量,并且我们也访问modelData中包含的每个元素的数据。
import QtQuick 2.0Column {spacing: 2Repeater {model: ["Enterprise", "Colombia", "Challenger", "Discovery", "Endeavour", "Atlantis"]Rectangle {width: 100height: 20radius: 3color: "lightBlue"Text {anchors.centerIn: parenttext: index +": "+modelData}}}
}

将数据暴露成一组序列,你可以通过标号迅速的找到你需要的信息。想象一下这个模型的草图,这是一个最简单的模型,也是通常都会使用的模型,ListModel(链表模型)。一个链表模型由许多ListElement(链表元素)组成。在每个链表元素中,可以绑定值到属性上。例如在下面这个例子中,每个元素都提供了一个名字和一个颜色。
每个元素中的属性绑定连接到repeater实例化的子项上。这意味着变量name和surfaceColor可以被repeater创建的每个Rectangle和Text项引用。这不仅可以方便的访问数据,也可以使源代码更加容易阅读。surfaceColor是名字左边圆的颜色,而不是模糊的数据序列列i或者行j。
import QtQuick 2.0Column {spacing: 2Repeater {model: ListModel {ListElement { name: "Mercury"; surfaceColor: "gray" }ListElement { name: "Venus"; surfaceColor: "yellow" }ListElement { name: "Earth"; surfaceColor: "blue" }ListElement { name: "Mars"; surfaceColor: "orange" }ListElement { name: "Jupiter"; surfaceColor: "orange" }ListElement { name: "Saturn"; surfaceColor: "yellow" }ListElement { name: "Uranus"; surfaceColor: "lightBlue" }ListElement { name: "Neptune"; surfaceColor: "lightBlue" }}Rectangle {width: 100height: 20radius: 3color: "lightBlue"Text {anchors.centerIn: parenttext: name}Rectangle {anchors.left: parent.leftanchors.verticalCenter: parent.verticalCenteranchors.leftMargin: 2width: 16height: 16radius: 8border.color: "black"border.width: 1color: surfaceColor}}}
}

repeater的内容的每个子项实例化时绑定了默认的属性delegate(代理)。这意味着例1(第一个代码段)的代码与下面显示的代码是相同的。注意,唯一的不同是delegate属性名,将会在后面详细讲解。
复制代码
import QtQuick 2.0Column {spacing: 2Repeater {model: 10delegate: Rectangle {width: 100height: 20radius: 3color: "lightBlue"Text {anchors.centerIn: parenttext: index}}}
}
相关文章:
QML基础模型(Basic Model)
最基本的分离数据与显示的方法是使用Repeater元素。它被用于实例化一组元素项,并且很容易与一个用于填充用户界面的定位器相结合。 最基本的实现举例,repeater元素用于实现子元素的标号。每个子元素都拥有一个可以访问的属性index,用于区分不…...
如果ChatGPT写作论文,保姆及教程以及问题答疑
上次发表“如何用ChatGPT完成论文”后,许多捧场看官评论讨论,也有不少同学实操成功,但更多人寻求帮助。所以今天再整理一篇,把大家的疑问进行说明。 1. ChatGPT写的论文能否被检查出? 有同学反映将一段ChatGPT…...
机器人中的数值优化(三)—— 无约束最优化方法基础、线搜索准则
本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,…...
vulnhub靶场之bluemoon
1.信息收集 存活主机进行探测,发现主机192.168.239.176存活。 对主机192.168.239.176进行端口扫描,发现21、22、80端口 访问http://192.168.239.176,并查看源码未发现可利用的行为。 进行目录扫描发现可疑路径/hidden_text 浏览器访问h…...
VTK 几何体连通区域分析 vtkPolyDataConnectivityFilter
前言: vtkPolyDataConnectivityFilter 使用过,但网上没有看到完事的教程;这里整理一下; 提取数据集中连通的多边形数据。 该类是一个滤波器,提取cell(区域) - 拥有公共点或者满足某个阈值 该类…...
scss、css样式中使用变量的方法;Vue动态改变css等样式文件中的变量
目录 一、问题 二、原因及解决方法 三、总结 一、问题 1.遇到一些样式 设置的值都是重复的不想重复写,想和js一样定义一个常量,然后直接引用这个常量。 2.想要在js中动态设置样式中的值,在 css、scss等样式表中直接使用。 二、原因及解…...
数据治理在学术上的发展史以及未来展望
数据治理是大数据领域中非常重要的一环,从早期的学术研究到如今的各大企业落地实践,经历了漫长的过程,数据治理的实践落地本身也是一场马拉松。 从百度学术通过精确关键词匹配,搜索中文期刊的“数据治理” 和外文期刊的“data gov…...
【搭建博客】宝塔面板部署Typecho博客,并发布上线访问
目录 前言 1.安装环境 2.下载Typecho 3.创建站点 4.访问Typecho 5.安装cpolar 6.远程访问Typecho 7.固定远程访问地址 8.配置typecho 前言 Typecho是由type和echo两个词合成的,来自于开发团队的头脑风暴。Typecho基于PHP5开发,支持多种数据库&…...
【Spring篇】IOC相关内容
🍓系列专栏:Spring系列专栏 🍉个人主页:个人主页 目录 一、bean基础配置 1.bean基础配置(id与class) 2.bean的name属性 3.bean作用范围scope配置 二、bean实例化 1.构造方法实例化 2.分析Spring的错误信息 3.静态工厂实例化 4.实例工厂 5.FactoryBean 三…...
Python超矩形
文章目录 距离函数矩形分割 Rectangle是 scipy.spatial中封装的类,其构造函数只需输入最小值和最大值的数组即可,并且可通过内置的 volume方法计算广义的体积。 from scipy.spatial import Rectanglerec Rectangle((0,0), (5,5)) print(rec.maxes) …...
【软考数据库】第五章 计算机网络
目录 5.1 网络功能和分类 5.2 OSI七层模型 5.3 TCP/IP协议 5.4 传输介质 5.5 通信方式和交换方式 5.6 IP地址 5.7 IPv6 5.8 网络规划和设计 5.9 其他考点补充 5.10 网络安全技术 5.11 网络安全协议 前言: 笔记来自《文老师软考数据库》教材精讲ÿ…...
深眸科技|深度学习、3D视觉融入机器视觉系统,实现生产数智化
随着“中国制造2025”战略加速落实,制造业生产线正在加紧向智能化、自动化和数字化转型之路迈进。而人工智能技术的兴起以及边缘算力持续提升的同时,机器视觉及其相关技术也在飞速发展,并不断渗透进工业领域,拓展应用场景的同时&a…...
DateFormat使用时需要注意:多线程下需要特殊处理
前言 工作或学习过程中难免会接触到时间(Date)相关的内容,比如String类型转为Date类型,或者Date类型转为String类型,jdk为我们提供了一套完善的日期格式化工具,DateFormat类,使用者可以使用该接…...
Packet Tracer - 研究直连路由
Packet Tracer - 研究直连路由 目标 第 1 部分:研究 IPv4 直连路由 第 2 部分:研究 IPv6 直连路由 拓扑图 背景信息 本活动中的网络已配置。 您将登录路由器并使用 show 命令发现并回答以下有关直连路由的问题。 注:用户 EXEC 密码是 c…...
大专生程序员找工作的一点小建议 知识分享 经验分享
最近呢有人在私信我 就问我说我呢是一个大专生 大专毕业 学历呢也不是很好 我但是我学的是这个计算机 这样一个专业 然后呢现在找工作找不到 就这样的一个要求 让我们呢给一些建议 当然就是私底下在网上聊吗 就会给 也相信 我的一个建议是什么样的 就是你首先你要去找工作的 首…...
PyCaret:低代码自动化的机器学习工具
PyCaret简介 随着ChatGPT和AI画图的大火,机器学习作为实现人工智能的底层技术被大众越来越多的认知,基于机器学习的产品也越来越多。传统的机器学习实现方法需要较强的编程能力和数据科学基础,这使得想零基础尝试机器学习变得非常困难。 机器…...
【Hello Network】网络编程套接字(三)
作者:小萌新 专栏:网络 作者简介:大二学生 希望能和大家一起进步 本篇博客简介:简单介绍下各种类型的Tcp协议 各种类型Tcp服务器 多进程版的TCP网络程序捕捉SIGCHLD信号让孙子进程执行任务 多线程TCP网络程序线程池版多线程TCP网络…...
3.4 只读存储器
学习目标: 学习只读存储器(ROM)的目标可以包括以下内容: 了解ROM的基本概念、分类以及适用场景。掌握ROM的电路原理、逻辑结构和读取方式。熟悉ROM的编程方式和编程工具。理解ROM与EPROM、EEPROM和闪存的区别和联系。了解ROM在计…...
从后端开发转大数据开发怎么样?
很多做后端的小伙伴,在某一个瞬间,都想转行大数据,那这种想法可行嘛? 转大数据的最初原因很简单,就是好几个同事都转了,他们的收入瞬间提高了好多,于是在同事的内推我也就跟着转了,…...
编程式导航路由跳转到当前路由(参数不变),多次执行会抛出NavigatorDuplicated的禁告错误?
重写push与replace方法 编程式导航路由跳转到当前路由(参数不变),多次执行会抛出NavigatorDuplicated的禁告错误? 路由跳转有俩种形式:声明式导航,编程式导航 声明式导航没有这类问题的,因为…...
STM32与PS2手柄的无线交互:从硬件对接到按键解析
1. 认识PS2手柄与STM32的无线交互 第一次接触PS2手柄和STM32的对接时,我完全被这个经典游戏手柄的通信协议吸引了。你可能不知道,这个2000年推出的手柄至今仍在嵌入式领域发光发热,主要得益于它简单的通信协议和稳定的性能。我实测过市面上常…...
告别环境焦虑:用 Conda 在 Ubuntu 上轻松管理 JAX (CPU/GPU) 和 TensorFlow 的多个版本
告别环境焦虑:用 Conda 在 Ubuntu 上轻松管理 JAX (CPU/GPU) 和 TensorFlow 的多个版本 深度学习框架的版本冲突问题,一直是开发者心中的痛。你是否经历过这样的场景:昨天还能正常运行的 TensorFlow 项目,今天更新了 CUDA 驱动后就…...
【免费下载】 探索语音合成新境界:so-vits-svc-4.1-Stable 资源文件推荐
探索语音合成新境界:so-vits-svc-4.1-Stable 资源文件推荐 【下载地址】so-vits-svc-4.1-Stable资源文件下载 本仓库提供 so-vits-svc-4.1-Stable 资源文件的下载。该资源文件是一个稳定版本的 so-vits-svc 模型,适用于语音合成和相关应用 项目地址: h…...
如何从零开始MemLabs:完整的环境搭建与工具配置教程
如何从零开始MemLabs:完整的环境搭建与工具配置教程 【免费下载链接】MemLabs Educational, CTF-styled labs for individuals interested in Memory Forensics 项目地址: https://gitcode.com/gh_mirrors/me/MemLabs MemLabs是一套面向内存取证初学者的CTF风…...
减少重复劳作,气泡图软件助力质检效率升级
在制造业做过质量或工程的人,一定都有过这种体验:一张复杂图纸几百个尺寸,一个个手动画气泡、编号、抄 Excel,眼睛越看越花,手指越敲越累。更折磨的是,图纸一改,气泡编号几乎要全部重来…...
ENVI实战:从直方图拉伸到图像变换,解锁遥感影像增强核心技巧
1. 遥感影像增强入门:为什么需要处理? 第一次接触遥感影像时,很多人会疑惑:为什么卫星拍回来的原始图像总是灰蒙蒙的?这就像用手机在雾天拍照,所有景物都像蒙了一层纱。我在处理长江流域水体监测项目时就遇…...
开源MCP服务器集合OpenClaw:模块化AI工具链的架构与实践
1. 项目概述:当开源AI工具链遇上“机械爪”如果你最近在折腾AI应用开发,特别是那些需要让大语言模型(LLM)与现实世界或复杂工具进行交互的项目,那么你很可能已经接触过“MCP”(Model Context Protocol&…...
Dify工作流终极指南:50+模板一键导入,零基础也能快速上手AI自动化
Dify工作流终极指南:50模板一键导入,零基础也能快速上手AI自动化 【免费下载链接】Awesome-Dify-Workflow 分享一些好用的 Dify DSL 工作流程,自用、学习两相宜。 Sharing some Dify workflows. 项目地址: https://gitcode.com/GitHub_Tren…...
魔兽争霸3 WarcraftHelper:让你的经典游戏在2026年焕发新生
魔兽争霸3 WarcraftHelper:让你的经典游戏在2026年焕发新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3的画面拉伸、帧…...
告别依赖地狱:在Ubuntu 22.04 LTS上一步到位搞定ns-3.39所有可选库(保姆级命令清单)
告别依赖地狱:在Ubuntu 22.04 LTS上一步到位搞定ns-3.39所有可选库(保姆级命令清单) 当你第一次尝试运行ns-3的MPI分布式仿真时,是否遇到过mpi.h not found的报错?或是想在NetAnim中可视化网络拓扑,却因为…...
