main.qml Example File | Qt Quick Controls 5.4

- Qt 5.4
- Qt Quick Controls
- Qt Quick Controls - Gallery
- main.qml Example File
- Qt 5.4.2 Reference Documentation

# main.qml Example File

gallery/main.qml

    /****************************************************************************
    **
    ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
    ** Contact: http://www.qt-project.org/legal
    **
    ** This file is part of the Qt Quick Controls module 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 Digia Plc 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 2.2
    import QtQuick.Layouts 1.1
    import QtQuick.Dialogs 1.1
    import QtQuick.Controls 1.2
    import "qml/UI.js" as UI
    import "qml"

    ApplicationWindow {
        visible: true
        title: "Qt Quick Controls Gallery"

        MessageDialog {
            id: aboutDialog
            icon: StandardIcon.Information
            title: "About"
            text: "Qt Quick Controls Gallery"
            informativeText: "This example demonstrates most of the available Qt Quick Controls."
        }

        Action {
            id: copyAction
            text: "&Copy"
            shortcut: StandardKey.Copy
            iconName: "edit-copy"
            enabled: (!!activeFocusItem && !!activeFocusItem["copy"])
            onTriggered: activeFocusItem.copy()
        }

        Action {
            id: cutAction
            text: "Cu&t"
            shortcut: StandardKey.Cut
            iconName: "edit-cut"
            enabled: (!!activeFocusItem && !!activeFocusItem["cut"])
            onTriggered: activeFocusItem.cut()
        }

        Action {
            id: pasteAction
            text: "&Paste"
            shortcut: StandardKey.Paste
            iconName: "edit-paste"
            enabled: (!!activeFocusItem && !!activeFocusItem["paste"])
            onTriggered: activeFocusItem.paste()
        }

        toolBar: ToolBar {
            RowLayout {
                anchors.fill: parent
                anchors.margins: spacing
                Label {
                    text: UI.label
                }
                Item { Layout.fillWidth: true }
                CheckBox {
                    id: enabler
                    text: "Enabled"
                    checked: true
                }
            }
        }

        menuBar: MenuBar {
            Menu {
                title: "&File"
                MenuItem {
                    text: "E&xit"
                    shortcut: StandardKey.Quit
                    onTriggered: Qt.quit()
                }
            }
            Menu {
                title: "&Edit"
                visible: tabView.currentIndex == 2
                MenuItem { action: cutAction }
                MenuItem { action: copyAction }
                MenuItem { action: pasteAction }
            }
            Menu {
                title: "&Help"
                MenuItem {
                    text: "About..."
                    onTriggered: aboutDialog.open()
                }
            }
        }

        TabView {
            id: tabView

            anchors.fill: parent
            anchors.margins: UI.margin
            tabPosition: UI.tabPosition

            Layout.minimumWidth: 360
            Layout.minimumHeight: 360
            Layout.preferredWidth: 480
            Layout.preferredHeight: 640

            Tab {
                title: "Buttons"
                ButtonPage {
                    enabled: enabler.checked
                }
            }
            Tab {
                title: "Progress"
                ProgressPage {
                    enabled: enabler.checked
                }
            }
            Tab {
                title: "Input"
                InputPage {
                    enabled: enabler.checked
                }
            }
        }
    }