当前位置:首页 > 网络黑客 > 正文内容

qml中listview的嵌套(qt listview详细用法)

访客3年前 (2021-12-30)网络黑客656

前言

有时,链表的数据需要分组。例如使用首字母来划分联系人,或者分类音乐。使用链表视图可以把平面列表按类别划分。

如何分组?

为了使用分组,section.property与section.criteria必须设置。section.property定义了哪些属性用于内容的划分。在这里,最重要的是知道每一组的元素必须连续,否则相同的属性名可能出现在几个不同的地方。

section.criteria能够被设置为ViewSection.FullString或者
ViewSection.FirstCharacter。默认下使用之一个值,能够被用于模型中有清晰的分组,例如音乐专辑。第二个是使用一个属性的首字母来分组,这说明任何属性都可以被使用。通常的例子是用于联系人名单中的姓。

当组被定义好后,每个子项能够使用绑定属性ListView.section,ListView.previousSection与ListView.nextSection来访问。使用这些属性,可以检测组的之一个与最后一个子项。

使用ListView的section.delegate属性可以给组指定 *** 组件。它能够创建段标题,并且可以在任意子项之前插入这个段 *** 。使用绑定属性section可以访问当前段的名称。

下面这个例子使用国际分类展示了分组的一些概念。国籍作为section.property,组 *** 组件(section.delegate)使用每个国家作为标题。在每个组中,spacemen模型中的名字使用spaceManDelegate组件来 *** 显示。

import QtQuick 2.3 import QtQuick.Window 2.2

Window { id: root visible: true width: 480 height: 300 color: "white"

ListView { anchors.fill: parent anchors.margins: 20 clip: true model: spaceMen delegate: spaceManDelegate section.property: "nation" section.delegate: sectionDelegate }

Component { id: spaceManDelegate Item { width: 260 height: 20 Text { anchors.left: parent.left anchors.verticalCenter: parent.verticalCenter anchors.leftMargin: 10 font.pixelSize: 12 text: name } } }

Component { id: sectionDelegate Rectangle { width: 260 height: 20 color: "lightBlue" Text { anchors.left: parent.left anchors.verticalCenter: parent.verticalCenter anchors.leftMargin: 10 font.pixelSize: 12 font.bold: true text: section } } }

ListModel { id: spaceMen ListElement { name: "小赵"; nation: "中国" } ListElement { name: "小钱"; nation: "中国" } ListElement { name: "小孙"; nation: "中国" } ListElement { name: "小李"; nation: "中国" } ListElement { name: "Amy"; nation: "美国" } ListElement { name: "David"; nation: "美国" } ListElement { name: "Kim"; nation: "美国" } ListElement { name: "Helen"; nation: "俄罗斯" } ListElement { name: "Kate"; nation: "俄罗斯" } } }

运行效果如下:

如果同一组下的内容不联系,如下面的代码所示:

ListModel { id: spaceMen ListElement { name: "小赵"; nation: "中国" } ListElement { name: "小钱"; nation: "中国" } ListElement { name: "Amy"; nation: "美国" } ListElement { name: "Kim"; nation: "美国" } ListElement { name: "Helen"; nation: "俄罗斯" } ListElement { name: "Kate"; nation: "俄罗斯" } ListElement { name: "小孙"; nation: "中国" } ListElement { name: "小李"; nation: "中国" } ListElement { name: "David"; nation: "美国" } }

即会出现多个相同的属性名,运行效果如下:

扫描二维码推送至手机访问。

版权声明:本文由黑客技术发布,如需转载请注明出处。

本文链接:https://w-123.com/104102.html

“qml中listview的嵌套(qt listview详细用法)” 的相关文章

乌克兰 MacPaw 公司发布 SpyBuster 旨在帮助用户应对俄罗斯的数据管控

位于乌克兰的Setapp开发商MacPaw已经创建了一个Mac应用程序,供用户了解他们的数据是否被保存在俄罗斯服务器上,依照该国法律可以被当局读取。总部位于乌克兰基辅的MacPaw已经告诉用户,尽管俄罗斯入侵该国,但这家乌克兰公司开发的软件作品Setapp、CleanMyMac X等将继续提供支持。...

FBI 警告:招聘网站上的虚假招聘广告可能会窃取个人信息

申请一份新工作通常意味着向潜在的雇主交出一连串的个人信息,这就是为什么联邦调查局警告人们要警惕招聘网站上的假招聘广告,这些广告会窃取和出售你的详细资料。联邦调查局的互联网犯罪中心(IC3)公共服务公告警告说,自2019年以来,受害者因虚假招聘广告而损失的平均金额约为3000美元。 骗子经常仿冒正常...

BlackTech 组织与他们使用的恶意软件 Gh0stTimes

BlackTech是一个网络间谍组织,在2018年前后对日本发起攻击活动。近日,研究人员发现了BlackTech可能使用的恶意软件Gh0stTimes。 研究人员在受Gh0stTimes感染的服务器上还发现了其他恶意软件,如下载器、后门程序、ELF Bifrose和攻击工具。这些工具可能会也被Bl...

提取指纹并不难:新安全实验表明只需少量成本就能解锁你的手机

相比较传统密码,在业内指纹被认为是更安全的数据保护形式。但事实上,指纹欺骗可能要比电影情节中所描述的操作要简单得多。根据 Kraken 安全实验室的说法,你所需要的只是一点木头胶水、一台激光打印机和一张醋酸纤维板。 几天前,这家加密货币交易公司在其官方博客上发表了一份报告,描述了如何进行“指纹破解...

faker.js 与 colors.js 开源库遭开发者恶意破坏 波及大量项目

尽管开源项目有着“众人拾柴火焰高”的特性,但也难防有人使坏。Bleeping Computer 报道称:近日一位开发者似乎故意破坏了 GitHub 和软件注册 npm 上的一对开源库(faker.js 和 colors.js)。由于成千上万的用户依赖这些库,本次恶意更新导致所有相关项目受到影响。...

微软:PrintNightmare 补丁有效 能绕过是因为错误使用 Windows

几天前微软紧急发布了一个带外(OOB)更新 KB5004945, 以修复“PrintNightmare”高危零日漏洞。但随后安全专家发现只需要修改注册表中的一个值就能绕过这个补丁,依然能利用该漏洞执行远程操作。 不过微软官方对本次更新予以肯定,表示在注册表安全设置下新更新能够保护用户,但修改注册表的...

评论列表

慵吋纯乏
3年前 (2022-06-10)

ListElement { name: "小赵"; nation: "中国" } ListElement { name: "小钱"; nation: "中国

怎忘栖迟
3年前 (2022-06-10)

"俄罗斯" } }}运行效果如下:如果同一组下的内容不联系,如下面的代码所示:ListModel { id: spaceMen L

夙世辙弃
3年前 (2022-06-10)

.property: "nation" section.delegate: sectionDelegate } Component { id: spaceManDelegate Item { w

边侣涴歌
3年前 (2022-06-10)

nation: "中国" } ListElement { name: "小钱"; nation: "中国" } ListElement

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。