Doc: Update the second part of entry level tutorial
Task-number: QDS-5001 Change-Id: If171a47c5aee4c8e6f5622e8217cc137de7bb6bb Reviewed-by: Johanna Vanhatapio <johanna.vanhatapio@qt.io> Reviewed-by: Brook Cronin <brook.cronin@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Tanja Remes <tanja.remes@qt.io>
Before Width: | Height: | Size: 484 B After Width: | Height: | Size: 218 B |
Before Width: | Height: | Size: 494 B After Width: | Height: | Size: 208 B |
Before Width: | Height: | Size: 208 B |
Before Width: | Height: | Size: 218 B |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 12 KiB |
BIN
doc/qtdesignstudio/examples/doc/images/loginui2-layout-text.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
doc/qtdesignstudio/examples/doc/images/loginui2-layout.png
Normal file
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 83 KiB |
Before Width: | Height: | Size: 39 KiB |
BIN
doc/qtdesignstudio/examples/doc/images/loginui2-loginpage.jpg
Normal file
After Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 13 KiB |
@@ -34,13 +34,13 @@
|
|||||||
\brief Illustrates how to position UI components on pages using anchors and
|
\brief Illustrates how to position UI components on pages using anchors and
|
||||||
positioners.
|
positioners.
|
||||||
|
|
||||||
\image loginui2.png "Log In UI"
|
\image loginui1.jpg "Log In UI"
|
||||||
|
|
||||||
\e{Log In UI - Positioning} is the second in a series of tutorials that build
|
\e{Log In UI - Positioning} is the second in a series of tutorials that build
|
||||||
on each other to illustrate how to use \QDS to create a simple UI with
|
on each other to illustrate how to use \QDS to create a simple UI with
|
||||||
some basic UI components, such as pages, buttons, and entry fields. Part 2
|
some basic UI components, such as pages, buttons, and entry fields. The
|
||||||
describes how to position the UI components on pages to create a scalable
|
second tutorial in the series describes how to position the UI components
|
||||||
UI.
|
on pages to create a scalable UI.
|
||||||
|
|
||||||
To ensure that the layout is responsive and all the UI components stay in
|
To ensure that the layout is responsive and all the UI components stay in
|
||||||
their proper places when you resize the UI on the desktop or on devices
|
their proper places when you resize the UI on the desktop or on devices
|
||||||
@@ -53,13 +53,15 @@
|
|||||||
|
|
||||||
\section1 Anchoring UI Components
|
\section1 Anchoring UI Components
|
||||||
|
|
||||||
First, you will \l {Setting Anchors and Margins}{anchor} the static page
|
First, you will \l {Setting Anchors and Margins}{anchor} the
|
||||||
elements, logo image (\e logo) and page title (\e pageTitle), to the page.
|
static page elements, background image (\e adventurePage), logo
|
||||||
When you created the project using the new project wizard template
|
(\e qt_logo_green_128x128px), and tag line (\e tagLine), to the page.
|
||||||
in Part 1 of this tutorial, the wizard template anchored \e pageTitle to the
|
|
||||||
vertical and horizontal center of the page. Therefore, you will only
|
When you created the project using the project wizard template
|
||||||
need to replace the vertical anchor of \e pageTitle with a top anchor
|
in \l {Log In UI - Components}, the wizard template anchored \e tagLine to
|
||||||
to align it with \e logo on the page.
|
the vertical and horizontal center of the page. Therefore, you will only
|
||||||
|
need to replace the vertical anchor of \e tagLine with a top anchor and
|
||||||
|
adjust the margins to align it with \e qt_logo_green_128x128px on the page.
|
||||||
|
|
||||||
To preview the changes that you make to the UI while you make
|
To preview the changes that you make to the UI while you make
|
||||||
them, select the \inlineimage live_preview.png
|
them, select the \inlineimage live_preview.png
|
||||||
@@ -71,17 +73,40 @@
|
|||||||
\list 1
|
\list 1
|
||||||
\li Open \e {Screen01.ui.qml} for editing in the
|
\li Open \e {Screen01.ui.qml} for editing in the
|
||||||
\uicontrol {Form Editor} view.
|
\uicontrol {Form Editor} view.
|
||||||
\li Select \e logo in the \l Navigator view.
|
\li Select \e adventurePage in the \l Navigator view to display its
|
||||||
\li In the \l Properties view, \uicontrol Layout tab,
|
properties in the \l Properties view.
|
||||||
select the \inlineimage icons/anchor-top.png
|
\li In \uicontrol Properties > \uicontrol Layout, select
|
||||||
(\uicontrol Top) and \inlineimage icons/anchor-left.png
|
the \inlineimage icons/anchor-fill.png
|
||||||
(\uicontrol Left) anchor buttons to anchor \e logo to the top left
|
anchor button to anchor \e adventurePage to its
|
||||||
corner of its parent with 10-pixel margins.
|
parent in the \uicontrol Target field. This attaches the background
|
||||||
\li Select \e pageTitle in \uicontrol Navigator.
|
image to the rectangle on all sides.
|
||||||
\li Deselect the \inlineimage icons/anchor-center-vertical.png
|
\image loginui2-layout.png "Layout properties"
|
||||||
(\uicontrol {Vertical Center}) button to remove the
|
\li Select \e qt_logo_green_128x128px in \l Navigator.
|
||||||
anchor, and then select the \uicontrol Top button to anchor the
|
\li In \uicontrol Properties > \uicontrol Layout, select the
|
||||||
title to the top of the page with a 70-pixel margin.
|
\inlineimage icons/anchor-top.png
|
||||||
|
and \inlineimage icons/anchor-center-horizontal.png
|
||||||
|
anchor buttons to anchor \e qt_logo_green_128x128px to the top of
|
||||||
|
its parent in the \uicontrol Target field with a 40-pixel margin
|
||||||
|
and to center it horizontally. This attaches the logo to the
|
||||||
|
rectangle at the top, while keeping its horizontal center aligned
|
||||||
|
with that of the rectangle.
|
||||||
|
\li Select \e tagLine in \uicontrol Navigator.
|
||||||
|
\li In \uicontrol Properties > \uicontrol Layout, deselect the
|
||||||
|
\inlineimage icons/anchor-center-vertical.png
|
||||||
|
button to remove the vertical center anchor, and then select the
|
||||||
|
\inlineimage icons/anchor-top.png
|
||||||
|
button to anchor the tag line to
|
||||||
|
\e qt_logo_green_128x128px in the \uicontrol Target field with a
|
||||||
|
40-pixel margin. This attaches the top of the tag line to the
|
||||||
|
bottom of the logo, while keeping its horizontal center aligned
|
||||||
|
with that of the rectangle.
|
||||||
|
\image loginui2-layout-text.png "Text Layout properties"
|
||||||
|
\note You can anchor component instances to their parent and sibling
|
||||||
|
components. If a component instance is not listed in the
|
||||||
|
\uicontrol Target field, check that the component instance is
|
||||||
|
located in the correct place in the component hierarchy in
|
||||||
|
\uicontrol Navigator. For more information,
|
||||||
|
see \l{Arranging Components}.
|
||||||
\li Select \uicontrol File > \uicontrol Save or press \key {Ctrl+S}
|
\li Select \uicontrol File > \uicontrol Save or press \key {Ctrl+S}
|
||||||
to save your changes.
|
to save your changes.
|
||||||
\endlist
|
\endlist
|
||||||
@@ -89,7 +114,7 @@
|
|||||||
Your page now should look something like this in the \uicontrol Design mode
|
Your page now should look something like this in the \uicontrol Design mode
|
||||||
and live preview:
|
and live preview:
|
||||||
|
|
||||||
\image loginui2-loginpage.png "Login page in the Design mode"
|
\image loginui2-loginpage.jpg "Login page in the Design mode and live preview"
|
||||||
|
|
||||||
\section2 Learn More - Anchors
|
\section2 Learn More - Anchors
|
||||||
|
|
||||||
@@ -107,74 +132,50 @@
|
|||||||
|
|
||||||
\section1 Using Column Positioners
|
\section1 Using Column Positioners
|
||||||
|
|
||||||
You will now add two entry fields to the page and position them in a column
|
You will now position the entry fields and buttons in columns
|
||||||
to learn another method of \l{Using Positioners}{positioning components}.
|
to learn another method of \l{Using Positioners}{positioning components}.
|
||||||
Next, you will position the push buttons on the page in another column.
|
Then, you will anchor the columns to the page to enable their positions
|
||||||
Finally, you will anchor the columns to the page to enable their positions
|
|
||||||
to change when the screen size changes.
|
to change when the screen size changes.
|
||||||
|
|
||||||
To add entry fields to the page:
|
To position the fields and buttons as columns:
|
||||||
|
|
||||||
\list 1
|
\list 1
|
||||||
\li Drag-and-drop two instances of the \uicontrol {Text Field}
|
\li Select \e username and \e password in \uicontrol Navigator
|
||||||
component from \l Library > \uicontrol Components >
|
(press and hold the \key Shift or \key Ctrl key for
|
||||||
\uicontrol {Qt Quick Controls} to \l {Form Editor}.
|
\l {Multiselection}{multiple selection}), and right-click
|
||||||
\li Select one of the text fields in \l Navigator, and
|
|
||||||
change its ID to \e usernameField in \l Properties.
|
|
||||||
\li In the \uicontrol Geometry group, \uicontrol Size field,
|
|
||||||
make the field wide enough to accommodate long user names
|
|
||||||
by setting its width to \e 300 pixels.
|
|
||||||
\li In the \uicontrol Placeholder field, set the text to display
|
|
||||||
inside the field before users type in it to \e Username
|
|
||||||
\li Select \uicontrol tr to mark the text translatable.
|
|
||||||
\image loginui2-field-properties.png "Text field properties"
|
|
||||||
\li Select the other text field, and change its ID to
|
|
||||||
\e passwordField, placeholder text to \e Password,
|
|
||||||
and width to \e 300 pixels.
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
The Text Field component has additional properties that you can use to change
|
|
||||||
its appearance. For example, you can change the color, font, alignment, or
|
|
||||||
word and letter spacing of the placeholder text.
|
|
||||||
|
|
||||||
You will now position the fields and buttons as columns:
|
|
||||||
|
|
||||||
\list 1
|
|
||||||
\li Select \e usernameField and \e passwordField in \uicontrol Navigator
|
|
||||||
(press the \key Shift key for multiple selection), and right-click
|
|
||||||
either of them to open a context menu.
|
either of them to open a context menu.
|
||||||
\li Select \uicontrol Position > \uicontrol {Position in Column}
|
\li Select \uicontrol Position > \uicontrol {Position in Column}
|
||||||
to position the fields on top of each other in
|
to position the fields on top of each other in
|
||||||
\uicontrol {Form Editor}.
|
\uicontrol {Form Editor}.
|
||||||
\li Select the column in \uicontrol Navigator and change its ID
|
\li Select the column in \uicontrol Navigator and change its ID
|
||||||
to \e fieldColumn in \uicontrol Properties.
|
to \e fields in \uicontrol Properties.
|
||||||
\li In the \uicontrol Spacing field, set the spacing between the
|
\li In \uicontrol Column > \uicontrol Spacing, set the spacing between
|
||||||
fields to 5 pixels.
|
the fields to 20 pixels.
|
||||||
\image loginui2-column-properties.png "Column properties"
|
\image loginui2-column-properties.png "Column properties"
|
||||||
\li Select \e loginButton and \e registerButton, and then select
|
\li Select \e login and \e createAccount, and then select
|
||||||
\uicontrol Position > \uicontrol {Position in Column} to position
|
\uicontrol Position > \uicontrol {Position in Column} to position
|
||||||
them in a column.
|
them in a column.
|
||||||
\li Select the button column, change its ID to \e buttonColumn, and
|
\li Select the button column, change its ID to \e buttons, and
|
||||||
set the spacing between the buttons to 5 pixels, as above.
|
set the spacing between the buttons to 20 pixels, as above.
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
You will now anchor the field and button columns to the page:
|
You will now anchor the field and button columns to the page:
|
||||||
|
|
||||||
\list 1
|
\list 1
|
||||||
\li Select \e fieldColumn in \uicontrol Navigator.
|
\li Select \e fields in \uicontrol Navigator.
|
||||||
\li In \uicontrol Properties > \uicontrol Layout, select the
|
\li In \uicontrol Properties > \uicontrol Layout, select the
|
||||||
\uicontrol Top button to anchor the top of the button column to
|
\inlineimage icons/anchor-top.png
|
||||||
the top of its parent with a 200-pixel margin.
|
button to anchor the top of the field column to
|
||||||
|
the bottom of \e tagLine with a 170-pixel margin.
|
||||||
\li Select the \inlineimage icons/anchor-center-horizontal.png
|
\li Select the \inlineimage icons/anchor-center-horizontal.png
|
||||||
(\uicontrol {Horizontal Center}) button to center the field
|
button to anchor the column horizontally to its parent.
|
||||||
column horizontally on the page.
|
\li Select \e buttons in \uicontrol Navigator.
|
||||||
\li Select \e buttonColumn in \uicontrol Navigator.
|
|
||||||
\li In \uicontrol Properties > \uicontrol Layout, select the
|
\li In \uicontrol Properties > \uicontrol Layout, select the
|
||||||
\inlineimage icons/anchor-bottom.png
|
\inlineimage icons/anchor-bottom.png
|
||||||
(\uicontrol Bottom) button to anchor the bottom of the button
|
button to anchor the button column to the bottom of its parent
|
||||||
column to the bottom of its parent with a 50-pixel margin.
|
with a 50-pixel margin.
|
||||||
\li Select the \uicontrol {Horizontal Center} button to center
|
\li Select the \inlineimage icons/anchor-center-horizontal.png
|
||||||
the button column horizontally on the page.
|
button to anchor the column horizontally to its parent.
|
||||||
\li Select \uicontrol File > \uicontrol Save or press \key {Ctrl+S}
|
\li Select \uicontrol File > \uicontrol Save or press \key {Ctrl+S}
|
||||||
to save your changes.
|
to save your changes.
|
||||||
\endlist
|
\endlist
|
||||||
@@ -182,7 +183,7 @@
|
|||||||
The second iteration of your UI is now ready and should look something like
|
The second iteration of your UI is now ready and should look something like
|
||||||
this in the \uicontrol Design mode and live preview:
|
this in the \uicontrol Design mode and live preview:
|
||||||
|
|
||||||
\image loginui2-loginpage-ready.png "Login page in the Design mode"
|
\image loginui2-loginpage-ready.jpg "Login page in the Design mode and live preview"
|
||||||
|
|
||||||
\section1 Learn More - Positioners
|
\section1 Learn More - Positioners
|
||||||
|
|
||||||
|
@@ -1,113 +0,0 @@
|
|||||||
|
|
||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2021 The Qt Company Ltd.
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of the examples of the Qt Design Studio.
|
|
||||||
**
|
|
||||||
** $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.15
|
|
||||||
import QtQuick.Controls 2.12
|
|
||||||
|
|
||||||
Button {
|
|
||||||
id: control
|
|
||||||
|
|
||||||
implicitWidth: Math.max(
|
|
||||||
buttonBackground ? buttonBackground.implicitWidth : 0,
|
|
||||||
textItem.implicitWidth + leftPadding + rightPadding)
|
|
||||||
implicitHeight: Math.max(
|
|
||||||
buttonBackground ? buttonBackground.implicitHeight : 0,
|
|
||||||
textItem.implicitHeight + topPadding + bottomPadding)
|
|
||||||
leftPadding: 4
|
|
||||||
rightPadding: 4
|
|
||||||
|
|
||||||
text: "My Button"
|
|
||||||
|
|
||||||
background: buttonBackground
|
|
||||||
Rectangle {
|
|
||||||
id: buttonBackground
|
|
||||||
implicitWidth: 100
|
|
||||||
implicitHeight: 40
|
|
||||||
opacity: enabled ? 1 : 0.3
|
|
||||||
radius: 20
|
|
||||||
border.color: "#41cd52"
|
|
||||||
}
|
|
||||||
|
|
||||||
contentItem: textItem
|
|
||||||
Text {
|
|
||||||
id: textItem
|
|
||||||
text: control.text
|
|
||||||
|
|
||||||
opacity: enabled ? 1.0 : 0.3
|
|
||||||
horizontalAlignment: Text.AlignHCenter
|
|
||||||
verticalAlignment: Text.AlignVCenter
|
|
||||||
font.bold: true
|
|
||||||
}
|
|
||||||
|
|
||||||
states: [
|
|
||||||
State {
|
|
||||||
name: "normal"
|
|
||||||
when: !control.down
|
|
||||||
|
|
||||||
PropertyChanges {
|
|
||||||
target: buttonBackground
|
|
||||||
border.color: "#41cd52"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
State {
|
|
||||||
name: "down"
|
|
||||||
when: control.down
|
|
||||||
PropertyChanges {
|
|
||||||
target: textItem
|
|
||||||
color: "#41cd52"
|
|
||||||
}
|
|
||||||
|
|
||||||
PropertyChanges {
|
|
||||||
target: buttonBackground
|
|
||||||
border.color: "#41cd52"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2020 The Qt Company Ltd.
|
** Copyright (C) 2021 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the examples of the Qt Toolkit.
|
** This file is part of the examples of the Qt Design Studio.
|
||||||
**
|
**
|
||||||
** $QT_BEGIN_LICENSE:BSD$
|
** $QT_BEGIN_LICENSE:BSD$
|
||||||
** Commercial License Usage
|
** Commercial License Usage
|
||||||
@@ -49,98 +49,89 @@
|
|||||||
** $QT_END_LICENSE$
|
** $QT_END_LICENSE$
|
||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
import QtQuick 2.10
|
import QtQuick
|
||||||
|
import QtQuick.Controls
|
||||||
import loginui2 1.0
|
import loginui2 1.0
|
||||||
import QtQuick.Controls 2.3
|
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
id: rectangle
|
||||||
width: Constants.width
|
width: Constants.width
|
||||||
height: Constants.height
|
height: Constants.height
|
||||||
gradient: Gradient {
|
|
||||||
GradientStop {
|
|
||||||
position: 0.50157
|
|
||||||
color: "#ffffff"
|
|
||||||
}
|
|
||||||
|
|
||||||
GradientStop {
|
color: Constants.backgroundColor
|
||||||
position: 1
|
|
||||||
color: "#41cd52"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
|
||||||
id: pageTitle
|
|
||||||
x: 258
|
|
||||||
y: 70
|
|
||||||
width: 135
|
|
||||||
height: 40
|
|
||||||
text: qsTr("Qt Account")
|
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
|
||||||
anchors.top: parent.top
|
|
||||||
anchors.topMargin: 70
|
|
||||||
font.pixelSize: 24
|
|
||||||
font.bold: true
|
|
||||||
}
|
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
id: logo
|
id: adventurePage
|
||||||
x: 10
|
anchors.fill: parent
|
||||||
y: 10
|
source: "images/adventurePage.jpg"
|
||||||
width: 100
|
|
||||||
height: 100
|
|
||||||
anchors.topMargin: 10
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.leftMargin: 10
|
|
||||||
anchors.top: parent.top
|
|
||||||
source: "qt_logo_green_64x64px.png"
|
|
||||||
fillMode: Image.PreserveAspectFit
|
fillMode: Image.PreserveAspectFit
|
||||||
}
|
}
|
||||||
|
|
||||||
Column {
|
Image {
|
||||||
id: fieldColumn
|
id: qt_logo_green_128x128px
|
||||||
x: 170
|
x: 296
|
||||||
y: 200
|
|
||||||
width: 300
|
|
||||||
height: 85
|
|
||||||
spacing: 5
|
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.topMargin: 200
|
source: "images/qt_logo_green_128x128px.png"
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
anchors.topMargin: 40
|
||||||
|
fillMode: Image.PreserveAspectFit
|
||||||
|
}
|
||||||
|
Text {
|
||||||
|
id: tagLine
|
||||||
|
width: 541
|
||||||
|
height: 78
|
||||||
|
color: "#ffffff"
|
||||||
|
text: qsTr("Are you ready to explore?")
|
||||||
|
anchors.top: qt_logo_green_128x128px.bottom
|
||||||
|
font.pixelSize: 50
|
||||||
|
anchors.topMargin: 40
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
font.family: "Titillium Web ExtraLight"
|
||||||
|
}
|
||||||
|
|
||||||
TextField {
|
Column {
|
||||||
id: usernameField
|
id: fields
|
||||||
width: 300
|
x: 128
|
||||||
placeholderText: qsTr("Username")
|
anchors.top: tagLine.bottom
|
||||||
font.pointSize: 10
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
anchors.topMargin: 170
|
||||||
|
spacing: 20
|
||||||
|
|
||||||
|
EntryField {
|
||||||
|
id: username
|
||||||
|
text: "Username or Email"
|
||||||
}
|
}
|
||||||
|
|
||||||
TextField {
|
EntryField {
|
||||||
id: passwordField
|
id: password
|
||||||
width: 300
|
text: qsTr("Password")
|
||||||
placeholderText: qsTr("Password")
|
|
||||||
font.pointSize: 10
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
id: buttonColumn
|
id: buttons
|
||||||
x: 260
|
x: 102
|
||||||
y: 345
|
y: 966
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
anchors.bottomMargin: 50
|
|
||||||
spacing: 5
|
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
anchors.bottomMargin: 100
|
||||||
|
spacing: 20
|
||||||
|
|
||||||
PushButton {
|
PushButton {
|
||||||
id: loginButton
|
id: login
|
||||||
width: 120
|
text: qsTr("Continue")
|
||||||
text: qsTr("Log In")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PushButton {
|
PushButton {
|
||||||
id: registerButton
|
id: createAccount
|
||||||
width: 120
|
|
||||||
text: qsTr("Create Account")
|
text: qsTr("Create Account")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*##^##
|
||||||
|
Designer {
|
||||||
|
D{i:0;formeditorZoom:0.5}D{i:1}D{i:2}D{i:4}
|
||||||
|
}
|
||||||
|
##^##*/
|
||||||
|
|
||||||
|
@@ -1,76 +1,26 @@
|
|||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2019 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$
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
pragma Singleton
|
pragma Singleton
|
||||||
import QtQuick 2.10
|
import QtQuick
|
||||||
|
|
||||||
QtObject {
|
QtObject {
|
||||||
readonly property int width: 640
|
readonly property int width: 720
|
||||||
readonly property int height: 480
|
readonly property int height: 1280
|
||||||
readonly property FontLoader mySystemFont: FontLoader { name: "Arial" }
|
|
||||||
|
property alias fontDirectory: directoryFontLoader.fontDirectory
|
||||||
|
property alias relativeFontDirectory: directoryFontLoader.relativeFontDirectory
|
||||||
|
|
||||||
/* Edit this comment to add your custom font */
|
/* Edit this comment to add your custom font */
|
||||||
/* readonly property FontLoader myCustomFont: FontLoader { source: "MyCustomFont.ttf" } */
|
|
||||||
readonly property font font: Qt.font({
|
readonly property font font: Qt.font({
|
||||||
family: mySystemFont.name,
|
family: Qt.application.font.family,
|
||||||
pointSize: Qt.application.font.pixelSize
|
pixelSize: Qt.application.font.pixelSize
|
||||||
})
|
})
|
||||||
readonly property font largeFont: Qt.font({
|
readonly property font largeFont: Qt.font({
|
||||||
family: mySystemFont.name,
|
family: Qt.application.font.family,
|
||||||
pointSize: Qt.application.font.pixelSize * 1.6
|
pixelSize: Qt.application.font.pixelSize * 1.6
|
||||||
})
|
})
|
||||||
|
|
||||||
readonly property color backgroundColor: "#c2c2c2"
|
readonly property color backgroundColor: "#c2c2c2"
|
||||||
|
|
||||||
|
property DirectoryFontLoader directoryFontLoader: DirectoryFontLoader {
|
||||||
|
id: directoryFontLoader
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*##^## Designer {
|
|
||||||
D{i:0;autoSize:true;height:480;width:640}
|
|
||||||
}
|
|
||||||
##^##*/
|
|
||||||
|
@@ -1 +1,2 @@
|
|||||||
singleton Constants 1.0 Constants.qml
|
singleton Constants 1.0 Constants.qml
|
||||||
|
EventListSimulator 1.0 EventListSimulator.qml
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2019 The Qt Company Ltd.
|
** Copyright (C) 2021 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the examples of the Qt Toolkit.
|
** This file is part of the examples of the Qt Design Studio.
|
||||||
**
|
**
|
||||||
** $QT_BEGIN_LICENSE:BSD$
|
** $QT_BEGIN_LICENSE:BSD$
|
||||||
** Commercial License Usage
|
** Commercial License Usage
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.10
|
import QtQuick
|
||||||
import loginui2 1.0
|
import loginui2 1.0
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
@@ -57,6 +57,5 @@ Item {
|
|||||||
|
|
||||||
Screen01 {
|
Screen01 {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -28,14 +28,20 @@ Project {
|
|||||||
directory: "."
|
directory: "."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Files {
|
||||||
|
filter: "*.ttf;*.otf"
|
||||||
|
}
|
||||||
|
|
||||||
Environment {
|
Environment {
|
||||||
QT_QUICK_CONTROLS_CONF: "qtquickcontrols2.conf"
|
QT_QUICK_CONTROLS_CONF: "qtquickcontrols2.conf"
|
||||||
QT_AUTO_SCREEN_SCALE_FACTOR: "1"
|
QT_AUTO_SCREEN_SCALE_FACTOR: "1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qt6Project: true
|
||||||
|
|
||||||
/* List of plugin directories passed to QML runtime */
|
/* List of plugin directories passed to QML runtime */
|
||||||
importPaths: [ "imports" ]
|
importPaths: [ "imports", "asset_imports" ]
|
||||||
|
|
||||||
/* Required for deployment */
|
/* Required for deployment */
|
||||||
targetDirectory: "/opt/loginui2"
|
targetDirectory: "/opt/loginui1"
|
||||||
}
|
}
|
||||||
|
@@ -1,121 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE QtCreatorProject>
|
|
||||||
<!-- Written by QtDesignStudio 1.5.9, 2020-07-02T17:34:24. -->
|
|
||||||
<qtcreator>
|
|
||||||
<data>
|
|
||||||
<variable>EnvironmentId</variable>
|
|
||||||
<value type="QByteArray">{595d361f-de69-4ff2-b1f6-d89b95edfd27}</value>
|
|
||||||
</data>
|
|
||||||
<data>
|
|
||||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
|
||||||
<value type="int">0</value>
|
|
||||||
</data>
|
|
||||||
<data>
|
|
||||||
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
|
||||||
<valuemap type="QVariantMap">
|
|
||||||
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
|
||||||
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
|
|
||||||
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
|
||||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
|
||||||
<value type="QString" key="language">Cpp</value>
|
|
||||||
<valuemap type="QVariantMap" key="value">
|
|
||||||
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
|
||||||
</valuemap>
|
|
||||||
</valuemap>
|
|
||||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
|
||||||
<value type="QString" key="language">QmlJS</value>
|
|
||||||
<valuemap type="QVariantMap" key="value">
|
|
||||||
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
|
||||||
</valuemap>
|
|
||||||
</valuemap>
|
|
||||||
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
|
|
||||||
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
|
||||||
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
|
||||||
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
|
||||||
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
|
|
||||||
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
|
|
||||||
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
|
|
||||||
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
|
||||||
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
|
||||||
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
|
||||||
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
|
|
||||||
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
|
|
||||||
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
|
|
||||||
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
|
|
||||||
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
|
|
||||||
<value type="int" key="EditorConfiguration.TabSize">8</value>
|
|
||||||
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
|
|
||||||
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
|
|
||||||
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
|
|
||||||
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
|
|
||||||
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
|
|
||||||
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
|
||||||
</valuemap>
|
|
||||||
</data>
|
|
||||||
<data>
|
|
||||||
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
|
||||||
<valuemap type="QVariantMap"/>
|
|
||||||
</data>
|
|
||||||
<data>
|
|
||||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
|
||||||
<valuemap type="QVariantMap">
|
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
|
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
|
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{8994bd34-5ed9-4c45-8c0a-94c8f33eca4a}</value>
|
|
||||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">-1</value>
|
|
||||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
|
||||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
|
||||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">0</value>
|
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
|
||||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
|
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
|
||||||
</valuemap>
|
|
||||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
|
||||||
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
|
||||||
</valuemap>
|
|
||||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
|
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
|
||||||
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
|
|
||||||
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
|
|
||||||
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
|
|
||||||
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
|
|
||||||
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
|
||||||
<value type="int" key="PE.EnvironmentAspect.Base">0</value>
|
|
||||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">QML Scene</value>
|
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmlProjectManager.QmlRunConfiguration.QmlScene</value>
|
|
||||||
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey"></value>
|
|
||||||
<value type="QString" key="QmlProjectManager.QmlRunConfiguration.LastUsedLanguage">en</value>
|
|
||||||
<value type="QString" key="QmlProjectManager.QmlRunConfiguration.MainScript">CurrentFile</value>
|
|
||||||
<value type="QString" key="QmlProjectManager.QmlRunConfiguration.QDeclarativeViewerArguments"></value>
|
|
||||||
<value type="bool" key="QmlProjectManager.QmlRunConfiguration.QDeclarativeViewerArguments.multi">false</value>
|
|
||||||
<value type="bool" key="QmlProjectManager.QmlRunConfiguration.UseMultiLanguage">false</value>
|
|
||||||
<value type="QString" key="RunConfiguration.OverrideDebuggerStartup"></value>
|
|
||||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
|
||||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
|
||||||
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
|
|
||||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
|
||||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
|
||||||
</valuemap>
|
|
||||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
|
||||||
</valuemap>
|
|
||||||
</data>
|
|
||||||
<data>
|
|
||||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
|
||||||
<value type="int">1</value>
|
|
||||||
</data>
|
|
||||||
<data>
|
|
||||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
|
||||||
<value type="int">22</value>
|
|
||||||
</data>
|
|
||||||
<data>
|
|
||||||
<variable>Version</variable>
|
|
||||||
<value type="int">22</value>
|
|
||||||
</data>
|
|
||||||
</qtcreator>
|
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -1,3 +1,6 @@
|
|||||||
; This file can be edited to change the style of the application
|
; This file can be edited to change the style of the application
|
||||||
; Read "Qt Quick Controls 2 Configuration File" for details:
|
; Read "Qt Quick Controls 2 Configuration File" for details:
|
||||||
; https://doc.qt.io/qt/qtquickcontrols2-configuration.html
|
; http://doc.qt.io/qt-5/qtquickcontrols2-configuration.html
|
||||||
|
|
||||||
|
[Controls]
|
||||||
|
Style=Default
|
||||||
|