This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
Doric/doric-Qt/example/app/main.qml
2021-07-21 19:03:29 +08:00

180 lines
6.3 KiB
QML

import QtQuick 2.12
import QtQuick.Controls 2.5
import QtQuick.Layouts 1.15
ApplicationWindow {
visible: true
width: 600
height: 844
title: qsTr("Doric Demo")
ColumnLayout{
spacing: 0
anchors.fill: parent
Rectangle {
id: navbar
visible: false
Layout.fillWidth: true
Layout.preferredHeight: 44
Text {
text: "Title"
font.pixelSize: 16
anchors.centerIn: parent
}
RowLayout {
anchors.verticalCenter: parent.verticalCenter
Rectangle {
Layout.preferredWidth: 10
}
Image {
Layout.preferredWidth: 24
Layout.preferredHeight: 24
id: name
source: "qrc:/doric/qml/doric_icon_back.png"
}
Text {
text: "Left"
font.pixelSize: 16
}
MouseArea {
anchors.fill: parent
onClicked: {
navigatorPop()
}
}
}
RowLayout {
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
Text {
text: "Right"
font.pixelSize: 16
}
Rectangle {
Layout.preferredWidth: 10
}
}
}
Rectangle {
Layout.fillWidth: true
Layout.fillHeight: true
StackView {
id: stack
objectName: "stackView"
anchors.fill: parent
initialItem: ScrollView {
id: entry
anchors.fill: parent
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
ScrollBar.vertical.policy: ScrollBar.AlwaysOff
ListView {
width: parent.width
model: 23
boundsBehavior: Flickable.StopAtBounds
delegate: Rectangle {
Column {
anchors.centerIn: parent
Text {
text: {
switch (index) {
case 0:
return "ComponetDemo.js"
case 1:
return "Counter.js"
case 2:
return "DraggableDemo.js"
case 3:
return "EffectsDemo.js"
case 4:
return "FlexDemo.js"
case 5:
return "Gobang.js"
case 6:
return "ImageDemo.js"
case 7:
return "InputDemo.js"
case 8:
return "LayoutDemo.js"
case 9:
return "LayoutTestDemo.js"
case 10:
return "ModalDemo.js"
case 11:
return "ModularDemo.js"
case 12:
return "NavigatorDemo.js"
case 13:
return "NetworkDemo.js"
case 14:
return "NotificationDemo.js"
case 15:
return "PopoverDemo.js"
case 16:
return "ScrollerDemo.js"
case 17:
return "SimpleDemo.js"
case 18:
return "SliderDemo.js"
case 19:
return "Snake.js"
case 20:
return "StorageDemo.js"
case 21:
return "SwitchDemo.js"
case 22:
return "TextDemo.js"
}
}
}
}
width: parent.width
height: 60
MouseArea {
anchors.fill: parent
onClicked: {
demoBridge.navigate(index)
}
}
}
}
}
}
}
}
function navigatorPush(page) {
stack.push(page)
if (stack.depth > 1) {
navbar.visible = true
} else {
navbar.visible = false
}
}
function navigatorPop() {
stack.pop()
console.log("stack.depth", stack.depth)
if (stack.depth > 1) {
navbar.visible = true
} else {
navbar.visible = false
}
}
}