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

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

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

前言

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

如何分组?

为了使用分组,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详细用法)” 的相关文章

以色列政府数个网站遭遇网络攻击:现正从瘫痪中恢复

以色列似乎正在从一场大规模的网络攻击中恢复过来。据Haaretz和Kan的Amichai Stein报道,攻击者在周一晚上攻陷了几个以色列政府网站,其中包括卫生部、内政部、司法部和福利部网站。总理办公室的网站也受到了影响。以色列国家网络管理局在一份声明中称,现在所有的网站都已重新上线。 虽然以色列政...

谷歌搜索 2021 Webspam 报告:过滤垃圾网站数量是 2020 年的六倍

由周四发布的“网络垃圾”(Webspam)报告可知,谷歌搜索在 2021 年过滤的垃圾网站数量、竟是 2020 年的六倍。据悉,作为 Alphabet 旗下子公司,Google 有一套名为 SpamBrian 的人工智能垃圾过滤系统,并且可在超过 99% 情况下实现“不受垃圾所困扰”(spam-fr...

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

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

FBI 发出警告:勒索软件集团正在利用财务信息进一步勒索受害者

FBI日前警告称,勒索软件集团正在瞄准涉及重大的、时间敏感的金融事件–如兼并和收购的公司,以此来胁迫受害者支付其赎金要求。FBI在本周写给私营公司的一份咨询中指出,网络犯罪分子在针对参与重大金融事件的公司时往往试图找到非公开信息,如果他们不支付赎金要求网络犯罪分子就会威胁公布这些信息。 “在最初的...

FBI 向托管 Cyclops Blink 恶意软件的僵尸网络服务器发起了行动

美国联邦调查局(FBI)透露,该机构于今年 3 月发起了针对 GRU 控制的大型僵尸网络的专项行动。在获得加利福尼亚和宾夕法尼亚两州法院的授权后,FBI 清理了存在于指挥和控制服务器(C2S)上的所谓 Cyclops Blink 恶意软件,从而切断了其与受感染设备的连接。 本周三,美国司法部披露了...

迎接 2022 世界密码日:保持良好使用习惯、善用多因素认证与密码管理器

为了迎接今年 5 月首个周四的“世界密码日”的到来,USA Today 觉得很有必要继续提醒大家提升安全意识。首先是尽量为工作、娱乐、网银、网购等各种在线活动配备强密码,且需避免使用同一个密码,以免所有账号被攻击者一锅端。 资料图(来自:Bitwarden) 业内知名开源密码器(US News &...

评论列表

慵吋纯乏
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

发表评论

访客

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