mirror of
https://github.com/zhuzichu520/FluentUI.git
synced 2024-11-24 11:40:43 +08:00
83 lines
2.2 KiB
QML
83 lines
2.2 KiB
QML
|
import QtQuick 2.15
|
|||
|
import FluentUI 1.0
|
|||
|
|
|||
|
Item {
|
|||
|
|
|||
|
|
|||
|
property string headerText: "Titlte"
|
|||
|
property bool expand: false
|
|||
|
|
|||
|
id:root
|
|||
|
height: layout_header.height + container.height
|
|||
|
width: 400
|
|||
|
|
|||
|
property int contentHeight : 300
|
|||
|
|
|||
|
default property alias content: container.data
|
|||
|
|
|||
|
Rectangle{
|
|||
|
id:layout_header
|
|||
|
width: parent.width
|
|||
|
height: 50
|
|||
|
radius: 4
|
|||
|
border.color: FluTheme.isDark ? Qt.rgba(53/255,53/255,53/255,1) : Qt.rgba(240/255,240/255,240/255,1)
|
|||
|
color: FluTheme.isDark ? Qt.rgba(61/255,61/255,61/255,1) : Qt.rgba(254/255,254/255,254/255,1)
|
|||
|
|
|||
|
|
|||
|
MouseArea{
|
|||
|
id:root_mouse
|
|||
|
anchors.fill: parent
|
|||
|
hoverEnabled: true
|
|||
|
onClicked: {
|
|||
|
expand = !expand
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
FluText{
|
|||
|
text: headerText
|
|||
|
anchors{
|
|||
|
verticalCenter: parent.verticalCenter
|
|||
|
left: parent.left
|
|||
|
leftMargin: 15
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
FluIconButton{
|
|||
|
anchors{
|
|||
|
verticalCenter: parent.verticalCenter
|
|||
|
right: parent.right
|
|||
|
rightMargin: 15
|
|||
|
}
|
|||
|
hoverColor: FluTheme.isDark ? Qt.rgba(73/255,73/255,73/255,1) : Qt.rgba(245/255,245/255,245/255,1)
|
|||
|
normalColor: FluTheme.isDark ? Qt.rgba(61/255,61/255,61/255,1) : Qt.rgba(254/255,254/255,254/255,1)
|
|||
|
hovered: root_mouse.containsMouse
|
|||
|
icon: expand ? FluentIcons.FA_angle_up : FluentIcons.FA_angle_down
|
|||
|
onClicked: {
|
|||
|
expand = !expand
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
Rectangle{
|
|||
|
id:container
|
|||
|
width: parent.width
|
|||
|
clip: true
|
|||
|
anchors{
|
|||
|
top: layout_header.bottom
|
|||
|
left: layout_header.left
|
|||
|
}
|
|||
|
radius: 4
|
|||
|
border.color: FluTheme.isDark ? Qt.rgba(53/255,53/255,53/255,1) : Qt.rgba(240/255,240/255,240/255,1)
|
|||
|
color: FluTheme.isDark ? Qt.rgba(57/255,57/255,57/255,1) : Qt.rgba(249/255,249/255,249/255,1)
|
|||
|
height: expand ? contentHeight : 0
|
|||
|
Behavior on height {
|
|||
|
NumberAnimation{
|
|||
|
duration: 150
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|