MyButton.qml Example File | Qt Quick 5.9

Qt 5.9 | Qt Quick | Qt Quick Examples - Local Storage | MyButton.qml Example File

Qt 5.9.2 Reference Documentation

# MyButton.qml Example File

localstorage/localstorage/MyButton.qml

      /****************************************************************************
      **
      ** Copyright (C) 2016 The Qt Company Ltd.
      ** Contact: http://www.qt.io/licensing/
      **
      ** This file is part of the documentation of the Qt Toolkit.
      **
      ** $QT_BEGIN_LICENSE:FDL$
      ** 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 http://www.qt.io/terms-conditions. For further
      ** information use the contact form at http://www.qt.io/contact-us.
      **
      ** GNU Free Documentation License Usage
      ** Alternatively, this file may be used under the terms of the GNU Free
      ** Documentation License version 1.3 as published by the Free Software
      ** Foundation and appearing in the file included in the packaging of
      ** this file. Please review the following information to ensure
      ** the GNU Free Documentation License version 1.3 requirements
      ** will be met: http://www.gnu.org/copyleft/fdl.html.
      ** $QT_END_LICENSE$
      **
      ****************************************************************************/

      import QtQuick 2.0

      Rectangle {
          id: button

          property bool checked: false
          property alias text: buttonText.text

          Accessible.name: text
          Accessible.description: "This button does " + text
          Accessible.role: Accessible.Button
          Accessible.onPressAction: button.clicked()

          signal clicked

          implicitWidth: buttonText.implicitWidth + 20
          implicitHeight: 30
          gradient: Gradient {
              GradientStop {
                  position: 0.0
                  color: "grey"
              }
              GradientStop {
                  position: 1.0
                  color: button.focus ? "red" : "grey"
              }
          }

          radius: 5
          antialiasing: true

          Text {
              id: buttonText
              text: parent.description
              anchors.centerIn: parent
              font.pixelSize: parent.height * .5
              style: enabled ? Text.Sunken : Text.Normal
              color: enabled ? "white" : "#555"
              styleColor: "black"
          }

          MouseArea {
              id: mouseArea
              anchors.fill: parent
              onClicked: parent.clicked()
          }

          Keys.onSpacePressed: clicked()
      }