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

前言

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

如何分组?

为了使用分组,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组件来代理显示。

本文转载自:https://www.gylmap.com

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: "俄罗斯" }
    }
}

运行效果如下:

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

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

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: "美国" }
    }

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

秒鲨号所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈!本站将在三个工作日内改正。
(0)

大家都在看

  • 锦肴轩老火锅怎么样(重庆渝宗老火锅排名)

    近日, 重庆解放碑威斯汀酒店锦肴轩海鲜料理餐厅全面上新,在保留招牌港式海鲜火锅的基础上,新增数款如红毛蟹、新西兰6头蓝鲍、极上牛小排等珍稀臻选食材,另有数十款创意川菜粤式精品,为您…

    2022年6月1日
  • 网络质量测试(中国电信宽带在线测速)

    “我家以前装的是4M宽带,晚上看视频感觉有点卡;现在换成了20M宽带,晚上看视频还是经常感觉到卡。这到底是怎么回事?是不是我家宽带被缩水了?”市民沈女士说。 在西安,和沈女士有同感…

    2022年7月2日 专栏投稿
  • icp年检怎么办理(icp许可证年检流程)

    我们都是知道企业办理icp许可证每年都需要进行icp许可证年检,那么icp许可证年检需要注意什么呢?icp许可证持有者向当地省级通信管理局进行提交icp许可证年检业务情况,通信管理…

    2022年3月15日
  • 癫痫多少钱(脸部抽搐要多少钱)

      不知道是什么原因造成的,癫痫现在的发病率越来越高,很多的方面都证明是因为我们对癫痫病基本常识不了解,所以才没有及时的治疗,如果患者能够及时发现其症状表现,并及时采取治疗措施的话…

    2022年6月8日
  • 橱柜品牌排行榜(橱柜品牌排行榜前十名品牌)

    橱柜行业优势非常明显,绝大部分成功的人正是把握住了司米橱柜加盟这个赚钱的好项目,最后走上财富征途。司米橱柜加盟不负众望,风靡欧美88载,已独占鳌头于行业之中。那么司米橱柜是10大品…

    2022年6月4日 专栏投稿
  • 苹果充电线多少钱(苹果5二手卖多少钱)

    最近,给本人的iPhone手机充电,手机总是发热,偶尔还出现弹出“不识别的设备”等字样,经过分析,故障原因高度怀疑是那根别人送的第三方充电线,而原版数据线,那是非常的昂贵的,一根就…

    2022年5月26日 专栏投稿
  • 小米手机哪款性价比高(小米口碑最好的手机)

    从2010年诞生之日起,小米手机一直和“性价比”这三个字拥有着几乎牢不可破的强关联性,导致大家对小米新品的角度优先看是否符合预计的“性价比”,然后才是看配置参数、看外观设计,仿佛“…

    2022年6月24日 专栏投稿
  • 2021年手机出货量排名(全球销量前十名手机)

    【手机中国新闻】11月26日,Gartner统计数据显示,2021年第三季度全球售给终端用户的智能手机数量与2020年同期相比下降了6.8%,销量下降的原因主要是产品组件短缺打乱了…

    2022年6月22日
  • 2015房贷利率多少(房贷基准利率2019)

    封面新闻记者熊英英 存量房贷也要挂钩LPR了,以后房贷会怎么变?这可能是不少购房者近期关心的话题。 12月28日,央行发布公告称,自2020年3月1日起,金融机构应与存量浮动利率贷…

    2022年7月3日
  • 公司怎么买社保(公司怎么替员工交社保)

    很多小伙伴在外地工作,对于社会福利,买房买车等问题都需要进行了解,想要融入这个城市可又不是本地户口,很多问题接踵而至,今天就带大家了解一下相关内容,无论是创业者和“打工人”心里都要…

    2022年4月6日
品牌推广 在线咨询
返回顶部