// Copyright (C) 2017 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only /*! \title Qt Quick Examples - Views \example views \brief This is a collection of QML model-view examples. \image qml-modelviews-example.png \ingroup qtquickexamples \examplecategory {Graphics} \e Views is a collection of small QML examples relating to model and view functionality. They demonstrate how to show data from a model using the Qt Quick view types. For more information, visit the \l{Models and Views in Qt Quick} page. \include examples-run.qdocinc \section1 Using GridView and PathView \e GridView and \e PathView demonstrate usage of these types to display views. \snippet views/gridview/gridview-example.qml 0 \section1 Using Dynamic List \e{Dynamic List} demonstrates animation of runtime additions and removals to a \l ListView. The ListView.onAdd signal handler runs an animation when new items are added to the view, and the ListView.onRemove another when they are removed. \snippet views/listview/dynamiclist.qml 0 \snippet views/listview/dynamiclist.qml 1 \section2 Expanding Delegates \e{Expanding Delegates} demonstrates delegates that expand when activated. It has a complex delegate the size and appearance of which can change, displacing other items in the view. \snippet views/listview/expandingdelegates.qml 0 \snippet views/listview/expandingdelegates.qml 1 \snippet views/listview/expandingdelegates.qml 2 \snippet views/listview/expandingdelegates.qml 3 \section1 Using Highlight \e Highlight demonstrates adding a custom highlight to a ListView. \snippet views/listview/highlight.qml 0 \section1 Using Highlight Ranges \e{Highlight Ranges} shows the three different highlight range modes of ListView. \snippet views/listview/highlightranges.qml 0 \snippet views/listview/highlightranges.qml 1 \snippet views/listview/highlightranges.qml 2 \section1 Using Sections \e Sections demonstrates the various section headers and footers available to \l ListView. \snippet views/listview/sections.qml 0 \section1 Using Packages \e Packages uses the \l [QML]{Package} type to transition delegates between two views. It has a Package object which defines delegate items for each view and an item that can be transferred between delegates. \snippet views/package/Delegate.qml 0 A \l DelegateModel allows the individual views to access their specific items from the shared package delegate. \snippet views/package/view.qml 0 \e{Draggable Selections} demonstrates the use of Package to group together multiple selected delegates for drag-and-drop within an item view. \snippet views/delegatemodel/dragselection.qml 0 \section1 Using ObjectModel \e ObjectModel uses an ObjectModel for the model instead of a \l ListModel. \snippet views/objectmodel/objectmodel.qml 0 \section1 Using Display Margins \e{Display Margins} uses delegates to display items and implements a simple header and footer components. */