FluentUI/example/qml/page/T_Buttons.qml

438 lines
11 KiB
QML
Raw Normal View History

import QtQuick 2.15
2023-08-24 15:50:37 +08:00
import QtQuick.Layouts 1.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import FluentUI 1.0
2023-08-26 17:20:30 +08:00
import "../component"
2023-02-28 18:29:00 +08:00
2023-03-10 18:08:32 +08:00
FluScrollablePage{
2024-03-09 15:35:48 +08:00
title: qsTr("Buttons")
2023-03-28 17:53:46 +08:00
2023-03-12 14:26:03 +08:00
FluText{
2024-03-09 15:35:48 +08:00
text: qsTr("Support the Tab key to switch focus, and the Space key to perform click events")
2023-03-12 14:26:03 +08:00
}
2024-03-29 16:56:09 +08:00
FluFrame{
2023-04-03 09:32:06 +08:00
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.preferredHeight: 68
Layout.topMargin: 10
padding: 10
2023-03-21 18:19:46 +08:00
FluTextButton{
2024-03-09 15:35:48 +08:00
disabled: text_button_switch.checked
text: qsTr("Text Button")
2023-03-21 18:19:46 +08:00
onClicked: {
showInfo("点击Text Button")
}
anchors{
verticalCenter: parent.verticalCenter
left: parent.left
}
}
2023-05-26 13:49:32 +08:00
FluToggleSwitch{
2024-03-09 15:35:48 +08:00
id: text_button_switch
2023-03-21 18:19:46 +08:00
anchors{
right: parent.right
2023-05-26 13:49:32 +08:00
verticalCenter: parent.verticalCenter
2023-03-21 18:19:46 +08:00
}
2024-03-09 15:35:48 +08:00
text: qsTr("Disabled")
2023-03-21 18:19:46 +08:00
}
}
2023-04-05 17:48:17 +08:00
CodeExpander{
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.topMargin: -6
2023-04-05 17:48:17 +08:00
code:'FluTextButton{
2023-04-06 17:32:21 +08:00
text:"Text Button"
onClicked: {
2023-04-05 17:48:17 +08:00
2023-04-06 17:32:21 +08:00
}
2023-04-05 17:48:17 +08:00
}'
}
2023-03-21 18:19:46 +08:00
2024-03-29 16:56:09 +08:00
FluFrame{
2023-04-03 09:32:06 +08:00
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.preferredHeight: 68
padding: 10
2023-04-05 17:48:17 +08:00
Layout.topMargin: 20
2023-03-10 18:08:32 +08:00
FluButton{
2024-03-09 15:35:48 +08:00
disabled: button_switch.checked
text: qsTr("Standard Button")
2023-03-10 18:08:32 +08:00
onClicked: {
2024-03-09 15:35:48 +08:00
showInfo(qsTr("Click StandardButton"))
2023-03-10 18:08:32 +08:00
}
anchors{
verticalCenter: parent.verticalCenter
left: parent.left
}
}
2023-05-26 13:49:32 +08:00
FluToggleSwitch{
2024-03-09 15:35:48 +08:00
id: button_switch
2023-03-10 18:08:32 +08:00
anchors{
right: parent.right
2023-05-26 13:49:32 +08:00
verticalCenter: parent.verticalCenter
2023-03-10 18:08:32 +08:00
}
2024-03-09 15:35:48 +08:00
text: qsTr("Disabled")
2023-03-10 18:08:32 +08:00
}
2023-03-06 18:08:01 +08:00
}
2023-04-05 17:48:17 +08:00
CodeExpander{
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.topMargin: -6
2023-04-05 17:48:17 +08:00
code:'FluButton{
2023-04-06 17:32:21 +08:00
text:"Standard Button"
onClicked: {
2023-04-05 17:48:17 +08:00
2023-04-06 17:32:21 +08:00
}
2023-04-05 17:48:17 +08:00
}'
}
2023-03-10 18:08:32 +08:00
2024-03-29 16:56:09 +08:00
FluFrame{
2023-04-03 09:32:06 +08:00
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.preferredHeight: 68
2023-04-05 17:48:17 +08:00
Layout.topMargin: 20
2024-03-29 16:23:16 +08:00
padding: 10
2023-03-10 18:08:32 +08:00
FluFilledButton{
2024-03-09 15:35:48 +08:00
disabled: filled_button_switch.checked
text: qsTr("Filled Button")
2023-03-10 18:08:32 +08:00
onClicked: {
2024-03-09 15:35:48 +08:00
showWarning(qsTr("Click FilledButton"))
2023-03-10 18:08:32 +08:00
}
anchors{
verticalCenter: parent.verticalCenter
left: parent.left
}
2023-02-28 18:29:00 +08:00
}
2023-05-26 13:49:32 +08:00
FluToggleSwitch{
2024-03-09 15:35:48 +08:00
id: filled_button_switch
2023-03-10 18:08:32 +08:00
anchors{
right: parent.right
2023-05-26 13:49:32 +08:00
verticalCenter: parent.verticalCenter
2023-02-28 18:29:00 +08:00
}
2024-03-09 15:35:48 +08:00
text: qsTr("Disabled")
2023-03-10 18:08:32 +08:00
}
}
2023-04-05 17:48:17 +08:00
CodeExpander{
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.topMargin: -6
2023-04-05 17:48:17 +08:00
code:'FluFilledButton{
2023-04-06 17:32:21 +08:00
text:"Filled Button"
onClicked: {
2023-04-05 17:48:17 +08:00
2023-04-06 17:32:21 +08:00
}
2023-04-05 17:48:17 +08:00
}'
}
2023-03-10 18:08:32 +08:00
2024-03-29 16:56:09 +08:00
FluFrame{
2023-04-07 18:27:50 +08:00
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.preferredHeight: 68
2023-04-07 18:27:50 +08:00
Layout.topMargin: 20
2024-03-29 16:23:16 +08:00
padding: 10
2023-04-07 18:27:50 +08:00
FluToggleButton{
2023-05-26 13:49:32 +08:00
disabled:toggle_button_switch.checked
2024-03-09 15:35:48 +08:00
text: qsTr("Toggle Button")
2023-04-07 18:27:50 +08:00
anchors{
verticalCenter: parent.verticalCenter
left: parent.left
}
}
2023-05-26 13:49:32 +08:00
FluToggleSwitch{
2024-03-09 15:35:48 +08:00
id: toggle_button_switch
2023-04-07 18:27:50 +08:00
anchors{
right: parent.right
2023-05-26 13:49:32 +08:00
verticalCenter: parent.verticalCenter
2023-04-07 18:27:50 +08:00
}
2024-03-09 15:35:48 +08:00
text: qsTr("Disabled")
2023-04-07 18:27:50 +08:00
}
}
CodeExpander{
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.topMargin: -6
2023-04-07 18:27:50 +08:00
code:'FluToggleButton{
text:"Toggle Button"
onClicked: {
2023-05-26 13:49:32 +08:00
checked = !checked
2023-04-07 18:27:50 +08:00
}
}'
}
2023-09-05 16:48:04 +08:00
Timer{
2024-03-09 15:35:48 +08:00
id: timer_progress
2023-09-05 16:48:04 +08:00
interval: 200
onTriggered: {
btn_progress.progress = (btn_progress.progress + 0.1).toFixed(1)
if(btn_progress.progress==1){
timer_progress.stop()
}else{
timer_progress.start()
}
}
}
2024-03-29 16:56:09 +08:00
FluFrame{
2023-09-05 16:48:04 +08:00
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.preferredHeight: 68
2023-09-05 16:48:04 +08:00
Layout.topMargin: 20
2024-03-29 16:23:16 +08:00
padding: 10
2023-09-05 16:48:04 +08:00
FluProgressButton{
2024-03-09 15:35:48 +08:00
id: btn_progress
disabled: progress_button_switch.checked
text: qsTr("Progress Button")
2023-09-05 16:48:04 +08:00
anchors{
verticalCenter: parent.verticalCenter
left: parent.left
}
onClicked: {
btn_progress.progress = 0
timer_progress.restart()
}
}
FluToggleSwitch{
2024-03-09 15:35:48 +08:00
id: progress_button_switch
2023-09-05 16:48:04 +08:00
anchors{
right: parent.right
verticalCenter: parent.verticalCenter
}
2024-03-09 15:35:48 +08:00
text: qsTr("Disabled")
2023-09-05 16:48:04 +08:00
}
}
CodeExpander{
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.topMargin: -6
2023-09-05 16:48:04 +08:00
code:'FluProgressButton{
text:"Progress Button"
onClicked: {
}
}'
}
2024-03-29 16:56:09 +08:00
FluFrame{
2023-09-11 18:10:50 +08:00
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.preferredHeight: 68
2023-09-11 18:10:50 +08:00
Layout.topMargin: 20
2024-03-29 16:23:16 +08:00
padding: 10
2023-09-11 18:10:50 +08:00
FluLoadingButton{
2024-03-09 15:35:48 +08:00
id: btn_loading
loading: loading_button_switch.checked
text: qsTr("Loading Button")
2023-09-11 18:10:50 +08:00
anchors{
verticalCenter: parent.verticalCenter
left: parent.left
}
onClicked: {
}
}
FluToggleSwitch{
2024-03-09 15:35:48 +08:00
id: loading_button_switch
2023-09-11 18:10:50 +08:00
checked: true
anchors{
right: parent.right
verticalCenter: parent.verticalCenter
}
2024-03-09 15:35:48 +08:00
text: qsTr("Loading")
2023-09-11 18:10:50 +08:00
}
}
CodeExpander{
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.topMargin: -6
2023-09-11 18:10:50 +08:00
code:'FluLoadingButton{
text:"Loading Button"
onClicked: {
}
}'
}
2023-03-10 18:08:32 +08:00
2024-03-29 16:56:09 +08:00
FluFrame{
2023-04-03 09:32:06 +08:00
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.preferredHeight: layout_icon_button.height + 30
padding: 10
2023-04-05 17:48:17 +08:00
Layout.topMargin: 20
2023-08-22 18:19:40 +08:00
Flow{
2024-03-09 15:35:48 +08:00
id: layout_icon_button
2023-08-22 18:19:40 +08:00
spacing: 10
2023-03-10 18:08:32 +08:00
anchors{
verticalCenter: parent.verticalCenter
left: parent.left
2023-08-22 18:19:40 +08:00
right: icon_button_switch.left
}
FluIconButton{
2024-03-09 15:35:48 +08:00
disabled: icon_button_switch.checked
iconDelegate: FluImage{ sourceSize: Qt.size(40,40) ; width: 20; height: 20; source: "qrc:/example/res/image/ic_home_github.png" }
2023-08-22 18:19:40 +08:00
onClicked:{
2024-03-09 15:35:48 +08:00
showSuccess(qsTr("Click IconButton"))
2023-08-22 18:19:40 +08:00
}
2023-03-10 18:08:32 +08:00
}
2023-08-18 09:59:38 +08:00
FluIconButton{
2024-03-09 15:35:48 +08:00
iconSource: FluentIcons.ChromeCloseContrast
disabled: icon_button_switch.checked
2023-08-18 09:59:38 +08:00
iconSize: 15
2024-03-09 15:35:48 +08:00
text: qsTr("IconOnly")
2023-08-22 18:19:40 +08:00
display: Button.IconOnly
2023-08-18 09:59:38 +08:00
onClicked:{
2024-03-09 15:35:48 +08:00
showSuccess(qsTr("Button.IconOnly"))
2023-08-18 09:59:38 +08:00
}
}
FluIconButton{
2024-03-09 15:35:48 +08:00
iconSource: FluentIcons.ChromeCloseContrast
disabled: icon_button_switch.checked
2023-08-22 18:19:40 +08:00
iconSize: 15
2024-03-09 15:35:48 +08:00
text: qsTr("TextOnly")
2023-08-22 18:19:40 +08:00
display: Button.TextOnly
2023-08-18 09:59:38 +08:00
onClicked:{
2024-03-09 15:35:48 +08:00
showSuccess(qsTr("Button.TextOnly"))
2023-08-22 18:19:40 +08:00
}
}
FluIconButton{
2024-03-09 15:35:48 +08:00
iconSource: FluentIcons.ChromeCloseContrast
disabled: icon_button_switch.checked
2023-08-22 18:19:40 +08:00
iconSize: 15
2024-03-09 15:35:48 +08:00
text: qsTr("TextBesideIcon")
2023-08-22 18:19:40 +08:00
display: Button.TextBesideIcon
onClicked:{
2024-03-09 15:35:48 +08:00
showSuccess(qsTr("Button.TextBesideIcon"))
2023-08-22 18:19:40 +08:00
}
}
FluIconButton{
2024-03-09 15:35:48 +08:00
iconSource: FluentIcons.ChromeCloseContrast
disabled: icon_button_switch.checked
2023-08-22 18:19:40 +08:00
iconSize: 15
2024-03-09 15:35:48 +08:00
text: qsTr("TextUnderIcon")
2023-08-22 18:19:40 +08:00
display: Button.TextUnderIcon
onClicked:{
2024-03-09 15:35:48 +08:00
showSuccess(qsTr("Button.TextUnderIcon"))
2023-08-18 09:59:38 +08:00
}
2023-03-06 18:08:01 +08:00
}
2023-03-10 18:08:32 +08:00
}
2023-05-26 13:49:32 +08:00
FluToggleSwitch{
2024-03-09 15:35:48 +08:00
id: icon_button_switch
2023-03-10 18:08:32 +08:00
anchors{
right: parent.right
2023-05-26 13:49:32 +08:00
verticalCenter: parent.verticalCenter
2023-03-10 18:08:32 +08:00
}
2024-03-09 15:35:48 +08:00
text: qsTr("Disabled")
2023-03-10 18:08:32 +08:00
}
}
2023-04-05 17:48:17 +08:00
CodeExpander{
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.topMargin: -6
2023-04-05 17:48:17 +08:00
code:'FluIconButton{
2023-04-06 17:32:21 +08:00
iconSource:FluentIcons.ChromeCloseContrast
onClicked: {
2023-04-05 17:48:17 +08:00
2023-04-06 17:32:21 +08:00
}
2023-04-05 17:48:17 +08:00
}'
}
2023-03-10 18:08:32 +08:00
2024-03-29 16:56:09 +08:00
FluFrame{
2023-04-03 09:32:06 +08:00
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.preferredHeight: 68
padding: 10
2023-04-05 17:48:17 +08:00
Layout.topMargin: 20
2023-03-16 18:11:03 +08:00
FluDropDownButton{
2024-03-09 15:35:48 +08:00
disabled: drop_down_button_switch.checked
text: qsTr("DropDownButton")
2023-03-10 18:08:32 +08:00
anchors{
verticalCenter: parent.verticalCenter
left: parent.left
}
2023-06-18 13:56:30 +08:00
FluMenuItem{
2024-03-09 15:35:48 +08:00
text: qsTr("Menu_1")
2023-06-18 13:56:30 +08:00
}
FluMenuItem{
2024-03-09 15:35:48 +08:00
text: qsTr("Menu_2")
2023-06-18 13:56:30 +08:00
}
FluMenuItem{
2024-03-09 15:35:48 +08:00
text: qsTr("Menu_3")
2023-06-18 13:56:30 +08:00
}
FluMenuItem{
2024-03-09 15:35:48 +08:00
text: qsTr("Menu_4")
2023-06-21 11:47:05 +08:00
onClicked: {
2023-07-07 16:56:29 +08:00
2023-06-21 11:47:05 +08:00
}
2023-06-18 13:56:30 +08:00
}
2023-03-10 18:08:32 +08:00
}
2023-05-26 13:49:32 +08:00
FluToggleSwitch{
2024-03-09 15:35:48 +08:00
id: drop_down_button_switch
2023-03-10 18:08:32 +08:00
anchors{
right: parent.right
2023-05-26 13:49:32 +08:00
verticalCenter: parent.verticalCenter
2023-02-28 18:29:00 +08:00
}
2024-03-09 15:35:48 +08:00
text: qsTr("Disabled")
2023-03-10 18:08:32 +08:00
}
}
2023-04-05 17:48:17 +08:00
CodeExpander{
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.topMargin: -6
2023-04-05 17:48:17 +08:00
code:'FluDropDownButton{
2023-04-06 17:32:21 +08:00
text:"DropDownButton"
2023-07-07 16:56:29 +08:00
FluMenuItem{
text:"Menu_1"
},
FluMenuItem{
text:"Menu_2"
},
FluMenuItem{
text:"Menu_3"
},
FluMenuItem{
text:"Menu_4"
}
2023-04-05 17:48:17 +08:00
}'
}
2023-03-10 18:08:32 +08:00
2024-03-29 16:56:09 +08:00
FluFrame{
2023-04-03 09:32:06 +08:00
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.preferredHeight: 100
padding: 10
2023-04-05 17:48:17 +08:00
Layout.topMargin: 20
2023-06-21 11:47:05 +08:00
FluRadioButtons{
2023-03-16 18:11:03 +08:00
spacing: 8
disabled: radio_button_switch.checked
2023-03-10 18:08:32 +08:00
anchors{
verticalCenter: parent.verticalCenter
left: parent.left
}
2023-06-21 11:47:05 +08:00
FluRadioButton{
disabled:radio_button_switch.checked
2024-03-09 15:35:48 +08:00
text: qsTr("Radio Button_1")
2023-06-21 11:47:05 +08:00
}
FluRadioButton{
disabled:radio_button_switch.checked
2024-03-09 15:35:48 +08:00
text: qsTr("Radio Button_2")
2023-06-21 11:47:05 +08:00
}
FluRadioButton{
disabled:radio_button_switch.checked
2024-03-09 15:35:48 +08:00
text: qsTr("Radio Button_3")
2023-03-16 18:11:03 +08:00
}
2023-03-10 18:08:32 +08:00
}
2023-05-26 13:49:32 +08:00
FluToggleSwitch{
2024-03-09 15:35:48 +08:00
id: radio_button_switch
2023-03-10 18:08:32 +08:00
anchors{
right: parent.right
2023-05-26 13:49:32 +08:00
verticalCenter: parent.verticalCenter
2023-03-10 18:08:32 +08:00
}
2024-03-09 15:35:48 +08:00
text: qsTr("Disabled")
2023-02-28 18:29:00 +08:00
}
}
2023-04-05 17:48:17 +08:00
CodeExpander{
Layout.fillWidth: true
2024-03-29 16:23:16 +08:00
Layout.topMargin: -6
2023-04-05 17:48:17 +08:00
code:'FluRadioButton{
2023-05-26 13:49:32 +08:00
checked:true
2023-04-06 17:32:21 +08:00
text:"Text Button"
onClicked: {
2023-04-05 17:48:17 +08:00
2023-04-06 17:32:21 +08:00
}
2023-04-05 17:48:17 +08:00
}'
}
2023-03-16 14:34:20 +08:00
2023-02-28 18:29:00 +08:00
}