Qt Reference Documentation

# main.qml Example File

declarative/ui-components/scrollbar/main.qml

     /****************************************************************************
     **
     ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
     ** All rights reserved.
     ** Contact: Nokia Corporation (qt-info@nokia.com)
     **
     ** This file is part of the examples of the Qt Toolkit.
     **
     ** $QT_BEGIN_LICENSE:BSD$
     ** 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 Nokia Corporation and its Subsidiary(-ies) 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 1.0

     Rectangle {
         width: 640
         height: 480

         // Create a flickable to view a large image.
         Flickable {
             id: view
             anchors.fill: parent
             contentWidth: picture.width
             contentHeight: picture.height

             Image {
                 id: picture
                 source: "pics/niagara_falls.jpg"
                 asynchronous: true
             }

             // Only show the scrollbars when the view is moving.
             states: State {
                 name: "ShowBars"
                 when: view.movingVertically || view.movingHorizontally
                 PropertyChanges { target: verticalScrollBar; opacity: 1 }
                 PropertyChanges { target: horizontalScrollBar; opacity: 1 }
             }

             transitions: Transition {
                 NumberAnimation { properties: "opacity"; duration: 400 }
             }
         }

         // Attach scrollbars to the right and bottom edges of the view.
         ScrollBar {
             id: verticalScrollBar
             width: 12; height: view.height-12
             anchors.right: view.right
             opacity: 0
             orientation: Qt.Vertical
             position: view.visibleArea.yPosition
             pageSize: view.visibleArea.heightRatio
         }

         ScrollBar {
             id: horizontalScrollBar
             width: view.width-12; height: 12
             anchors.bottom: view.bottom
             opacity: 0
             orientation: Qt.Horizontal
             position: view.visibleArea.xPosition
             pageSize: view.visibleArea.widthRatio
         }
     }