Коммит beb0bd31 создал по автору OMP Education's avatar OMP Education
Просмотр файлов

Add module: Silica. #13

владелец 5b5c8397
......@@ -60,7 +60,13 @@ Copyright © 2016–2023 ООО «Открытая мобильн
* [Примеры](./javascript/examples.md)
* [Задания](./javascript/tasks.md)
* [Тесты](./javascript/tests.md)
* Silica
* [Silica](./silica)
* Лекция:
[cлайды](./silica/lecture.fodp),
[конспект](./silica/lecture.md)
* [Примеры](./silica/examples.md)
* [Задания](./silica/tasks.md)
* [Тесты](./silica/tests.md)
* Qt Quick Controls 2
* Объектная модель Qt
* Жизненный цикл приложения в ОС Аврора
......
# Примеры по теме «Silica»
* [Галерея компонентов Silica для Аврора IDE](../../projects/silica_elements)
Copyright © 2016–2023 ООО «Открытая мобильная платформа».
Этот документ предоставляется в соответствии
с [Публичной лицензией Creative Commons с указанием авторства версии 4.0 Международная](../../LICENSE.CC-BY-4.0.ru.md).
* [Галерея компонентов Silica для Аврора IDE](../../projects/silica_components_example_aurora)
Это отличие свёрнуто
Это отличие свёрнуто
# Задания по теме «Silica»
Copyright © 2016–2023 ООО «Открытая мобильная платформа».
Этот документ предоставляется в соответствии
с [Публичной лицензией Creative Commons с указанием авторства версии 4.0 Международная](../../LICENSE.CC-BY-4.0.ru.md).
## Управление кнопкой
Создать кнопку и поле с текстом.
......
# Тесты по теме «Silica»
Copyright © 2016–2023 ООО «Открытая мобильная платформа».
Этот документ предоставляется в соответствии
с [Публичной лицензией Creative Commons с указанием авторства версии 4.0 Международная](../../LICENSE.CC-BY-4.0.ru.md).
## Single choice
С помощью какого из свойств можно установить доступные странице ориентации экрана?
......@@ -42,7 +46,10 @@ Component
## Text
На стеке есть одна страница. С помощью метода pushAttached() прикрепляем новую страницу и переходим на неё. Затем с помощью метода push() помещаем ещё одну страницу сверху. Какова будет глубина стека страниц?
На стеке есть одна страница.
С помощью метода pushAttached() прикрепляем новую страницу и переходим на неё.
Затем с помощью метода push() помещаем ещё одну страницу сверху.
Какова будет глубина стека страниц?
---
......
// SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <edu@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause
import QtQuick 2.0
import Sailfish.Silica 1.0
ApplicationWindow {
id: applicationWindow
objectName: "applicationWindow"
property string currentPageName: qsTr("Main")
initialPage: Qt.resolvedUrl("pages/MainPage.qml")
cover: Qt.resolvedUrl("cover/DefaultCoverPage.qml")
allowedOrientations: defaultAllowedOrientations
Connections {
target: pageStack
onDepthChanged: if ( pageStack.depth == 1) applicationWindow.currentPageName = qsTr("Main")
}
}
// SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <edu@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause
import QtQuick 2.0
import Sailfish.Silica 1.0
CoverBackground {
objectName: "defaultCover"
CoverPlaceholder {
objectName: "placeholder"
text: qsTr("Silica Components")
icon {
source: Qt.resolvedUrl("../icons/SilicaComponents.svg")
sourceSize { width: icon.width; height: icon.height }
}
forceFit: true
}
}
// SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <edu@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause
import QtQuick 2.6
import Sailfish.Silica 1.0
Dialog {
property string name
DialogHeader {
acceptText: qsTr("Set header")
cancelText: qsTr("Don't change")
}
TextField {
id: nameField
anchors.centerIn: parent
width: parent.width
placeholderText: qsTr("Enter page name")
label: qsTr("Page name")
text: name
}
onDone: if (result == DialogResult.Accepted) name = nameField.text
}
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="462pt"
height="339pt"
viewBox="0 0 462 339"
version="1.1"
id="svg2"
inkscape:version="0.91 r13725"
sodipodi:docname="TheQtCompany_logo_2.svg">
<metadata
id="metadata20">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs18" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1536"
inkscape:window-height="801"
id="namedview16"
showgrid="false"
inkscape:zoom="1.1138643"
inkscape:cx="270.58047"
inkscape:cy="174.65092"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<path
fill="#41cd52"
d=" M 63.50 0.00 L 462.00 0.00 L 462.00 274.79 C 440.60 296.26 419.13 317.66 397.61 339.00 L 0.00 339.00 L 0.00 63.39 C 21.08 42.18 42.34 21.13 63.50 0.00 Z"
id="path6" />
<path
d=" M 122.37 71.33 C 137.50 61.32 156.21 58.79 174.00 58.95 C 190.94 59.16 208.72 62.13 222.76 72.24 C 232.96 79.41 239.59 90.48 244.01 101.93 C 251.16 120.73 253.26 141.03 253.50 161.01 C 253.53 181.13 252.62 201.69 245.96 220.86 C 241.50 233.90 233.01 245.48 221.81 253.52 C 229.87 266.58 238.09 279.54 246.15 292.60 C 236.02 297.27 225.92 301.97 215.78 306.62 C 207.15 292.38 198.56 278.11 189.90 263.89 C 178.19 265.81 166.21 265.66 154.44 264.36 C 140.34 262.67 125.97 258.37 115.09 248.88 C 106.73 241.64 101.48 231.51 97.89 221.21 C 92.01 203.79 90.43 185.25 90.16 166.97 C 90.02 147.21 91.28 127.14 97.24 108.18 C 101.85 93.92 109.48 79.69 122.37 71.33 Z"
id="path8"
fill="#ffffff" />
<path
d=" M 294.13 70.69 C 304.73 70.68 315.33 70.68 325.93 70.69 C 325.96 84.71 325.92 98.72 325.95 112.74 C 339.50 112.76 353.05 112.74 366.60 112.75 C 366.37 121.85 366.12 130.95 365.86 140.05 C 352.32 140.08 338.79 140.04 325.25 140.07 C 325.28 163.05 325.18 186.03 325.30 209.01 C 325.56 215.30 325.42 221.94 328.19 227.75 C 330.21 232.23 335.65 233.38 340.08 233.53 C 348.43 233.50 356.77 233.01 365.12 232.86 C 365.63 241.22 366.12 249.59 366.60 257.95 C 349.99 260.74 332.56 264.08 316.06 258.86 C 309.11 256.80 302.63 252.19 299.81 245.32 C 294.76 233.63 294.35 220.62 294.13 208.07 C 294.11 185.40 294.13 162.74 294.12 140.07 C 286.73 140.05 279.34 140.08 271.95 140.05 C 271.93 130.96 271.93 121.86 271.95 112.76 C 279.34 112.73 286.72 112.77 294.11 112.74 C 294.14 98.72 294.10 84.71 294.13 70.69 Z"
id="path10"
fill="#ffffff" />
<path
fill="#41cd52"
d=" M 160.51 87.70 C 170.80 86.36 181.60 86.72 191.34 90.61 C 199.23 93.73 205.93 99.84 209.47 107.58 C 214.90 119.31 216.98 132.26 218.03 145.05 C 219.17 162.07 219.01 179.25 216.66 196.17 C 215.01 206.24 212.66 216.85 205.84 224.79 C 198.92 232.76 188.25 236.18 178.01 236.98 C 167.21 237.77 155.82 236.98 146.07 231.87 C 140.38 228.84 135.55 224.09 132.73 218.27 C 129.31 211.30 127.43 203.69 126.11 196.07 C 122.13 171.91 121.17 146.91 126.61 122.89 C 128.85 113.83 132.11 104.53 138.73 97.70 C 144.49 91.85 152.51 88.83 160.51 87.70 Z"
id="path12" />
</svg>
<svg width="1024" height="1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<path id="Background" d="m0 357.5c0-180.46 0-245.38 56.06-301.44s120.99-56.06 326.74-56.06h258.39c205.76 0 270.68 0 326.74 56.06s56.06 120.99 56.06 326.74v258.39c0 205.76 0 270.68-56.06 326.74-56.06 56.059-120.99 56.059-326.74 56.059h-258.39c-205.76 0-270.68 0-326.74-56.059-56.06-56.06-56.06-120.99-56.06-326.74z" fill="#003e88"/>
<mask id="Frame_Mask" maskUnits="userSpaceOnUse">
<use xlink:href="#Background"/>
</mask>
<g fill="none" mask="url(#Frame_Mask)" stroke="#4169e1" stroke-width="1024">
<path d="m-2e-5 512h1024" stroke-dasharray="1.024, 49.152, 1.024, 0"/>
<path d="m512-2.41e-5v1024" stroke-dasharray="1.024, 49.152, 1.024, 0"/>
<path d="m-2e-5 512h1024" stroke-dasharray="2.56, 506.88, 2.56, 0"/>
<path d="m512-2.41e-5v1024" stroke-dasharray="2.56, 506.88, 2.56, 0"/>
</g>
<radialGradient id="Aurora_Gradient" cx="253.16" cy="572.03" r="346.86" gradientTransform="matrix(1.7323 .99965 -1 1.7329 540.61 -618.36)" gradientUnits="userSpaceOnUse">
<stop stop-color="#fff" offset="0"/>
<stop stop-color="#fff" stop-opacity="0" offset="1"/>
</radialGradient>
<path d="m820.13 625.96h-23.404a3.7229 3.7229 0 0 1-3.2222-5.5952l8.1207-14.064a12.388 12.388 0 0 0 0-12.41l-35.161-60.959-53.775 93.007h-17.831a3.7229 3.7229 0 0 1-3.2222-5.5952l59.109-102.32a12.388 12.388 0 0 0 0-12.41l-35.161-60.959-204.15 353.24-9.2745-16.045a9.8624 9.8624 0 0 1 0-9.9277l197.7-341.96a12.388 12.388 0 0 0 0-12.41l-35.161-60.959-204.21 353.19-9.2528-16.045a9.8624 9.8624 0 0 1 0-9.9277l197.75-342.05a12.388 12.388 0 0 0 0-12.41l-35.182-61.003-206.7 357.61h-17.722a3.7229 3.7229 0 0 1-3.2221-5.5952l211.92-366.76a12.453 12.453 0 0 0 0-12.41l-35.182-60.959-257.66 445.72h-17.831a3.7229 3.7229 0 0 1-3.2221-5.5952l263.02-455.02a12.388 12.388 0 0 0 0-12.41l-35.204-60.938-346.86 601.06h208.15l138.16 238.94 138.18-238.94h209.22z" fill="url(#Aurora_Gradient)"/>
</svg>
// SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <edu@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause
import QtQuick 2.6
import Sailfish.Silica 1.0
Page {
id: page
PageHeader { title: qsTr("Buttons") }
Column {
anchors.centerIn: parent
spacing: Theme.paddingLarge
Button {
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("Button")
onClicked: console.log("Button clicked")
}
IconButton {
anchors.horizontalCenter: parent.horizontalCenter
icon.source: "image://theme/icon-m-play"
onClicked: console.log("IconButton clicked")
}
ValueButton {
width: page.width
label: qsTr("ValueButton")
description: qsTr("Counting Value")
value: "0"
onClicked: value++
}
}
}
// SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <edu@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause
import QtQuick 2.6
import Sailfish.Silica 1.0
Page {
SilicaListView {
anchors.fill: parent
header: PageHeader { title: qsTr("ContextMenu") }
delegate: ListItem {
menu: ContextMenu {
MenuItem {
text: qsTr("Toggle bold font")
onClicked: label.font.bold = !label.font.bold
}
}
Label {
id: label
text: qsTr("Item %1").arg(model.index + 1)
anchors.centerIn: parent
}
}
model: 10
}
}
// SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <edu@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause
import QtQuick 2.6
import Sailfish.Silica 1.0
Page {
PageHeader { id: header }
Button {
text: qsTr("Set header")
anchors.centerIn: parent
onClicked: {
var dialog =
pageStack.push(Qt.resolvedUrl("../dialogs/HeaderInputDialog.qml"),
{"name": header.title});
dialog.accepted.connect(function() {
header.title = dialog.name;
});
}
}
}
// SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <edu@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause
import QtQuick 2.6
import Sailfish.Silica 1.0
Page {
SilicaFlickable {
id: flickable
anchors.fill: parent
contentWidth: column.width; contentHeight: column.height
Column {
id: column
width: flickable.width
PageHeader { title: qsTr("SilicaFlickable") }
Image {
source: "../graphics/logo_qt_2016.svg"
width: sourceSize.width
height: flickable.height * 1.5
anchors.horizontalCenter: parent.horizontalCenter
fillMode: Image.TileVertically
}
}
VerticalScrollDecorator { }
}
}
// SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <edu@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause
import QtQuick 2.6
import Sailfish.Silica 1.0
Page {
SilicaGridView {
header: PageHeader { title: qsTr("SilicaGridView") }
anchors.fill: parent
cellWidth: width / 4
cellHeight: cellWidth
delegate: Label {
width: GridView.view.cellWidth
height: GridView.view.cellHeight
text: (model.index + 1)
color: Theme.highlightColor
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
}
model: 100
VerticalScrollDecorator { }
// flow: GridView.TopToBottom
// HorizontalScrollDecorator { }
}
}
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать