FluentUI/example/qml-Qt6/page/T_TreeView.qml

134 lines
3.3 KiB
QML
Raw Normal View History

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:"TreeView"
2023-09-14 18:50:36 +08:00
function treeData(){
2023-09-17 20:36:33 +08:00
const dig = (path = '0', level = 3) => {
2023-09-14 18:50:36 +08:00
const list = [];
2023-09-17 20:36:33 +08:00
for (let i = 0; i < 8; i += 1) {
2023-09-14 18:50:36 +08:00
const key = `${path}-${i}`;
const treeNode = {
title: key,
key,
};
if (level > 0) {
treeNode.children = dig(key, level - 1);
}
list.push(treeNode);
}
return list;
};
return dig();
}
2023-08-24 15:50:37 +08:00
FluArea{
Layout.fillWidth: true
2023-09-15 01:28:03 +08:00
Layout.topMargin: 10
2023-08-24 15:50:37 +08:00
paddings: 10
2023-09-15 19:11:55 +08:00
height: 80
Column{
2023-09-15 01:28:03 +08:00
anchors.verticalCenter: parent.verticalCenter
2023-09-15 19:11:55 +08:00
spacing: 10
FluText{
text:"高性能树控件新的TreeView用TableView实现"
}
FluText{
text:"共计:%1条数据当前显示的%2条数据".arg(tree_view.count()).arg(tree_view.visibleCount())
}
2023-08-24 15:50:37 +08:00
}
}
FluArea{
Layout.fillWidth: true
Layout.topMargin: 10
paddings: 10
2023-09-18 00:12:39 +08:00
height: 420
2023-09-15 19:11:55 +08:00
Item{
anchors.fill: tree_view
FluShadow{}
}
2023-08-24 15:50:37 +08:00
FluTreeView{
id:tree_view
2023-09-15 19:11:55 +08:00
width:slider_width.value
2023-08-24 15:50:37 +08:00
anchors{
top:parent.top
left:parent.left
bottom:parent.bottom
}
2023-09-17 20:36:33 +08:00
draggable:switch_draggable.checked
2023-09-15 19:11:55 +08:00
showLine: switch_showline.checked
2023-09-14 18:50:36 +08:00
Component.onCompleted: {
var data = treeData()
dataSource = data
}
}
2023-09-15 19:11:55 +08:00
Column{
2023-09-17 20:36:33 +08:00
spacing: 15
2023-09-15 19:11:55 +08:00
anchors{
top:parent.top
topMargin: 10
bottomMargin: 10
rightMargin: 10
bottom:parent.bottom
right: parent.right
}
RowLayout{
spacing: 10
FluText{
text:"width:"
Layout.alignment: Qt.AlignVCenter
}
FluSlider{
id:slider_width
2023-09-19 00:31:49 +08:00
value: 280
2023-09-15 19:11:55 +08:00
from: 160
2023-09-18 00:12:39 +08:00
to:400
2023-09-15 19:11:55 +08:00
}
}
FluToggleSwitch{
id:switch_showline
text:"showLine"
checked: true
}
2023-09-17 20:36:33 +08:00
FluToggleSwitch{
id:switch_draggable
text:"draggable"
2023-09-19 00:31:49 +08:00
checked: true
}
FluButton{
text:"all expand"
onClicked: {
tree_view.allExpand()
}
}
FluButton{
text:"all collapse"
onClicked: {
tree_view.allCollapse()
}
2023-09-17 20:36:33 +08:00
}
2023-09-15 19:11:55 +08:00
}
}
2023-08-24 15:50:37 +08:00
CodeExpander{
Layout.fillWidth: true
Layout.topMargin: -1
code:'FluTreeView{
id:tree_view
width:240
height:600
Component.onCompleted: {
2023-09-15 01:28:03 +08:00
var data = treeData()
dataSource = data
2023-08-24 15:50:37 +08:00
}
}
'
}
}
2023-09-19 00:31:49 +08:00