2023-08-24 15:50:37 +08:00
|
|
|
|
import QtQuick
|
|
|
|
|
import QtQuick.Layouts
|
|
|
|
|
import QtQuick.Window
|
|
|
|
|
import QtQuick.Controls
|
|
|
|
|
import FluentUI
|
|
|
|
|
import "qrc:///example/qml/component"
|
|
|
|
|
|
|
|
|
|
FluScrollablePage{
|
|
|
|
|
|
|
|
|
|
title:"Carousel"
|
|
|
|
|
|
|
|
|
|
ListModel{
|
|
|
|
|
id:data_model
|
|
|
|
|
ListElement{
|
|
|
|
|
url:"qrc:/example/res/image/banner_1.jpg"
|
|
|
|
|
}
|
|
|
|
|
ListElement{
|
|
|
|
|
url:"qrc:/example/res/image/banner_2.jpg"
|
|
|
|
|
}
|
|
|
|
|
ListElement{
|
|
|
|
|
url:"qrc:/example/res/image/banner_3.jpg"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FluArea{
|
|
|
|
|
Layout.fillWidth: true
|
|
|
|
|
height: 370
|
|
|
|
|
paddings: 10
|
|
|
|
|
Layout.topMargin: 20
|
|
|
|
|
Column{
|
|
|
|
|
spacing: 15
|
|
|
|
|
anchors{
|
|
|
|
|
verticalCenter: parent.verticalCenter
|
|
|
|
|
left:parent.left
|
|
|
|
|
}
|
|
|
|
|
FluText{
|
|
|
|
|
text:"轮播图,支持无限轮播,无限滑动,用ListView实现的组件"
|
|
|
|
|
}
|
2023-09-08 22:33:23 +08:00
|
|
|
|
Item{
|
|
|
|
|
width: 400
|
|
|
|
|
height: 300
|
|
|
|
|
FluShadow{
|
|
|
|
|
radius: 8
|
2023-08-24 15:50:37 +08:00
|
|
|
|
}
|
2023-09-08 22:33:23 +08:00
|
|
|
|
FluCarousel{
|
|
|
|
|
anchors.fill: parent
|
|
|
|
|
delegate: Component{
|
|
|
|
|
Image {
|
|
|
|
|
anchors.fill: parent
|
|
|
|
|
source: model.url
|
|
|
|
|
asynchronous: true
|
|
|
|
|
fillMode:Image.PreserveAspectCrop
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Layout.topMargin: 20
|
|
|
|
|
Layout.leftMargin: 5
|
|
|
|
|
Component.onCompleted: {
|
|
|
|
|
model = [{url:"qrc:/example/res/image/banner_1.jpg"},{url:"qrc:/example/res/image/banner_2.jpg"},{url:"qrc:/example/res/image/banner_3.jpg"}]
|
|
|
|
|
}
|
2023-08-24 15:50:37 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FluArea{
|
|
|
|
|
Layout.fillWidth: true
|
|
|
|
|
height: 340
|
|
|
|
|
paddings: 10
|
|
|
|
|
Layout.topMargin: 10
|
|
|
|
|
Column{
|
|
|
|
|
spacing: 15
|
|
|
|
|
anchors{
|
|
|
|
|
verticalCenter: parent.verticalCenter
|
|
|
|
|
left:parent.left
|
|
|
|
|
}
|
2023-09-08 22:33:23 +08:00
|
|
|
|
Item{
|
|
|
|
|
width: 400
|
|
|
|
|
height: 300
|
|
|
|
|
FluShadow{
|
|
|
|
|
radius: 8
|
|
|
|
|
}
|
|
|
|
|
FluCarousel{
|
|
|
|
|
anchors.fill: parent
|
|
|
|
|
loopTime:1500
|
|
|
|
|
indicatorGravity: Qt.AlignHCenter | Qt.AlignTop
|
|
|
|
|
indicatorMarginTop:15
|
|
|
|
|
delegate: Component{
|
|
|
|
|
Item{
|
2023-08-24 15:50:37 +08:00
|
|
|
|
anchors.fill: parent
|
2023-09-08 22:33:23 +08:00
|
|
|
|
Image {
|
2023-08-24 15:50:37 +08:00
|
|
|
|
anchors.fill: parent
|
2023-09-08 22:33:23 +08:00
|
|
|
|
source: model.url
|
|
|
|
|
asynchronous: true
|
|
|
|
|
fillMode:Image.PreserveAspectCrop
|
|
|
|
|
}
|
|
|
|
|
Rectangle{
|
|
|
|
|
height: 40
|
|
|
|
|
width: parent.width
|
|
|
|
|
anchors.bottom: parent.bottom
|
|
|
|
|
color: "#33000000"
|
|
|
|
|
FluText{
|
|
|
|
|
anchors.fill: parent
|
|
|
|
|
verticalAlignment: Qt.AlignVCenter
|
|
|
|
|
horizontalAlignment: Qt.AlignHCenter
|
|
|
|
|
text:model.title
|
|
|
|
|
color: FluColors.Grey10
|
|
|
|
|
font.pixelSize: 15
|
|
|
|
|
}
|
2023-08-24 15:50:37 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-09-08 22:33:23 +08:00
|
|
|
|
Layout.topMargin: 20
|
|
|
|
|
Layout.leftMargin: 5
|
|
|
|
|
Component.onCompleted: {
|
|
|
|
|
var arr = []
|
|
|
|
|
arr.push({url:"qrc:/example/res/image/banner_1.jpg",title:"共同应对全球性问题"})
|
|
|
|
|
arr.push({url:"qrc:/example/res/image/banner_2.jpg",title:"三小只全程没互动"})
|
|
|
|
|
arr.push({url:"qrc:/example/res/image/banner_3.jpg",title:"有效投资扩大 激发增长动能"})
|
|
|
|
|
model = arr
|
|
|
|
|
}
|
2023-08-24 15:50:37 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2023-09-08 22:33:23 +08:00
|
|
|
|
|
2023-08-24 15:50:37 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CodeExpander{
|
|
|
|
|
Layout.fillWidth: true
|
|
|
|
|
Layout.topMargin: -1
|
|
|
|
|
code:'FluCarousel{
|
|
|
|
|
id:carousel
|
|
|
|
|
width: 400
|
|
|
|
|
height: 300
|
|
|
|
|
delegate: Component{
|
|
|
|
|
Image {
|
|
|
|
|
anchors.fill: parent
|
|
|
|
|
source: model.url
|
|
|
|
|
asynchronous: true
|
|
|
|
|
fillMode:Image.PreserveAspectCrop
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Component.onCompleted: {
|
|
|
|
|
carousel.model = [{url:"qrc:/example/res/image/banner_1.jpg"},{url:"qrc:/example/res/image/banner_2.jpg"},{url:"qrc:/example/res/image/banner_3.jpg"}]
|
|
|
|
|
}
|
|
|
|
|
}'
|
|
|
|
|
}
|
|
|
|
|
}
|