main.qml Example File

tableview/main.qml
 /****************************************************************************
 **
 ** Copyright (C) 2016 The Qt Company Ltd.
 ** Contact: https://www.qt.io/licensing/
 **
 ** This file is part of the examples of the Qt Toolkit.
 **
 ** $QT_BEGIN_LICENSE:BSD$
 ** Commercial License Usage
 ** Licensees holding valid commercial Qt licenses may use this file in
 ** accordance with the commercial license agreement provided with the
 ** Software or, alternatively, in accordance with the terms contained in
 ** a written agreement between you and The Qt Company. For licensing terms
 ** and conditions see https://www.qt.io/terms-conditions. For further
 ** information use the contact form at https://www.qt.io/contact-us.
 **
 ** BSD License Usage
 ** Alternatively, you may use this file under the terms of the BSD license
 ** as follows:
 **
 ** "Redistribution and use in source and binary forms, with or without
 ** modification, are permitted provided that the following conditions are
 ** met:
 **   * Redistributions of source code must retain the above copyright
 **     notice, this list of conditions and the following disclaimer.
 **   * Redistributions in binary form must reproduce the above copyright
 **     notice, this list of conditions and the following disclaimer in
 **     the documentation and/or other materials provided with the
 **     distribution.
 **   * Neither the name of The Qt Company Ltd nor the names of its
 **     contributors may be used to endorse or promote products derived
 **     from this software without specific prior written permission.
 **
 **
 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
 **
 ** $QT_END_LICENSE$
 **
 ****************************************************************************/

 import QtQuick 2.2
 import QtQuick.Layouts 1.1
 import QtQuick.Controls 1.2
 import org.qtproject.example 1.0

 ApplicationWindow {
     id: window
     visible: true
     title: "Table View Example"

     toolBar: ToolBar {
         TextField {
             id: searchBox

             placeholderText: "Search..."
             inputMethodHints: Qt.ImhNoPredictiveText

             width: window.width / 5 * 2
             anchors.right: parent.right
             anchors.verticalCenter: parent.verticalCenter
         }
     }

     TableView {
         id: tableView

         frameVisible: false
         sortIndicatorVisible: true

         anchors.fill: parent

         Layout.minimumWidth: 400
         Layout.minimumHeight: 240
         Layout.preferredWidth: 600
         Layout.preferredHeight: 400

         TableViewColumn {
             id: titleColumn
             title: "Title"
             role: "title"
             movable: false
             resizable: false
             width: tableView.viewport.width - authorColumn.width
         }

         TableViewColumn {
             id: authorColumn
             title: "Author"
             role: "author"
             movable: false
             resizable: false
             width: tableView.viewport.width / 3
         }

         model: SortFilterProxyModel {
             id: proxyModel
             source: sourceModel.count > 0 ? sourceModel : null

             sortOrder: tableView.sortIndicatorOrder
             sortCaseSensitivity: Qt.CaseInsensitive
             sortRole: sourceModel.count > 0 ? tableView.getColumn(tableView.sortIndicatorColumn).role : ""

             filterString: "*" + searchBox.text + "*"
             filterSyntax: SortFilterProxyModel.Wildcard
             filterCaseSensitivity: Qt.CaseInsensitive
         }

         ListModel {
             id: sourceModel
             ListElement {
                 title: "Moby-Dick"
                 author: "Herman Melville"
             }
             ListElement {
                 title: "The Adventures of Tom Sawyer"
                 author: "Mark Twain"
             }
             ListElement {
                 title: "Cat���s Cradle"
                 author: "Kurt Vonnegut"
             }
             ListElement {
                 title: "Fahrenheit 451"
                 author: "Ray Bradbury"
             }
             ListElement {
                 title: "It"
                 author: "Stephen King"
             }
             ListElement {
                 title: "On the Road"
                 author: "Jack Kerouac"
             }
             ListElement {
                 title: "Of Mice and Men"
                 author: "John Steinbeck"
             }
             ListElement {
                 title: "Do Androids Dream of Electric Sheep?"
                 author: "Philip K. Dick"
             }
             ListElement {
                 title: "Uncle Tom���s Cabin"
                 author: "Harriet Beecher Stowe"
             }
             ListElement {
                 title: "The Call of the Wild"
                 author: "Jack London"
             }
             ListElement {
                 title: "The Old Man and the Sea"
                 author: "Ernest Hemingway"
             }
             ListElement {
                 title: "A Streetcar Named Desire"
                 author: "Tennessee Williams"
             }
             ListElement {
                 title: "Catch-22"
                 author: "Joseph Heller"
             }
             ListElement {
                 title: "One Flew Over the Cuckoo���s Nest"
                 author: "Ken Kesey"
             }
             ListElement {
                 title: "The Murders in the Rue Morgue"
                 author: "Edgar Allan Poe"
             }
             ListElement {
                 title: "Breakfast at Tiffany���s"
                 author: "Truman Capote"
             }
             ListElement {
                 title: "Death of a Salesman"
                 author: "Arthur Miller"
             }
             ListElement {
                 title: "Post Office"
                 author: "Charles Bukowski"
             }
             ListElement {
                 title: "Herbert West���Reanimator"
                 author: "H. P. Lovecraft"
             }
         }
     }
 }