From 27c845b7d9c223083dc34a6a0a2a5890b59a842f Mon Sep 17 00:00:00 2001 From: Mentalflow <312902918@qq.com> Date: Sat, 24 May 2025 01:27:15 +0800 Subject: [PATCH] RibbonTabPage and example: Update to avoid warning and properly define progressbar_slider. --- example/qml/Qt5/components/TabBar.qml | 51 +++++++++++++++------------ example/qml/Qt6/components/TabBar.qml | 51 +++++++++++++++------------ lib_source/qml/Qt5/RibbonTabPage.qml | 6 ++-- lib_source/qml/Qt6/RibbonTabPage.qml | 6 ++-- 4 files changed, 64 insertions(+), 50 deletions(-) diff --git a/example/qml/Qt5/components/TabBar.qml b/example/qml/Qt5/components/TabBar.qml index 8aa723b..752dba1 100644 --- a/example/qml/Qt5/components/TabBar.qml +++ b/example/qml/Qt5/components/TabBar.qml @@ -36,15 +36,15 @@ RibbonTabBar { RibbonTabPage{ id: basic_page title: qsTr("Basic") - property var sliderLayout: getItem(0).sliderLayout - property var sliderWithBtn: getItem(0).sliderWithBtn - property var sliderWithoutBtn: getItem(0).sliderWithoutBtn - property var switchLayout: getItem(1).switchLayout - property var btnWithColorAndGrabberText: getItem(1).btnWithColorAndGrabberText - property var checkBoxLayout: getItem(2).checkBoxLayout - property var buttonLayout: getItem(3).buttonLayout - property var btnWithoutBgAndLabel: getItem(3).btnWithoutBgAndLabel - property var pushButtonLayout: getItem(4).pushButtonLayout + property var sliderLayout + property var sliderWithBtn + property var sliderWithoutBtn + property var switchLayout + property var btnWithColorAndGrabberText + property var checkBoxLayout + property var buttonLayout + property var btnWithoutBgAndLabel + property var pushButtonLayout onContainerItemUpdated: { if(getItem(0)){ @@ -329,8 +329,8 @@ RibbonTabBar { RibbonTabPage{ id: input_page title: qsTr("Input") - property var lineEditLayout: getItem(0).lineEditLayout - property var lineEditWithIcon: getItem(0).lineEditWithIcon + property var lineEditLayout + property var lineEditWithIcon onContainerItemUpdated: { if(getItem(0)){ @@ -503,9 +503,16 @@ RibbonTabBar { } } RibbonTabPage{ + id: progress_page title: qsTr("Progress") + property var progressbarSlider + onContainerItemUpdated:{ + if(getItem(0)) + progressbarSlider = getItem(0).progressbarSlider + } RibbonTabGroup{ width: progressbar_slider.width + 30 + property var progressbarSlider: progressbar_slider RibbonSlider{ id: progressbar_slider anchors.centerIn: parent @@ -526,22 +533,22 @@ RibbonTabBar { ColumnLayout{ RibbonProgressBar{ barWidth: 100 - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 textLabelPosition: RibbonProgressBar.LabelPosition.Top } RibbonProgressBar{ barWidth: 100 - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 textLabelPosition: RibbonProgressBar.LabelPosition.Left } RibbonProgressBar{ barWidth: 100 - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 textLabelPosition: RibbonProgressBar.LabelPosition.Right } RibbonProgressBar{ barWidth: 100 - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 textLabelPosition: RibbonProgressBar.LabelPosition.Bottom } } @@ -577,7 +584,7 @@ RibbonTabBar { barWidth: 100 indeterminate: false showText: false - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 } } } @@ -593,26 +600,26 @@ RibbonTabBar { RowLayout{ RibbonProgressRing{ barWidth: 30 - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 textLabelPosition: RibbonProgressBar.LabelPosition.Top } RibbonProgressRing{ barWidth: 30 - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 textLabelPosition: RibbonProgressBar.LabelPosition.Left } RibbonProgressRing{ barWidth: 30 - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 textLabelPosition: RibbonProgressBar.LabelPosition.Right } RibbonProgressRing{ barWidth: 30 - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 textLabelPosition: RibbonProgressBar.LabelPosition.Bottom } RibbonProgressRing{ - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 centerInTextLabel: true } } @@ -652,7 +659,7 @@ RibbonTabBar { barWidth: 30 indeterminate: false showText: false - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 } } } diff --git a/example/qml/Qt6/components/TabBar.qml b/example/qml/Qt6/components/TabBar.qml index 10bcc88..54ff44d 100644 --- a/example/qml/Qt6/components/TabBar.qml +++ b/example/qml/Qt6/components/TabBar.qml @@ -36,15 +36,15 @@ RibbonTabBar { RibbonTabPage{ id: basic_page title: qsTr("Basic") - property var sliderLayout: getItem(0).sliderLayout - property var sliderWithBtn: getItem(0).sliderWithBtn - property var sliderWithoutBtn: getItem(0).sliderWithoutBtn - property var switchLayout: getItem(1).switchLayout - property var btnWithColorAndGrabberText: getItem(1).btnWithColorAndGrabberText - property var checkBoxLayout: getItem(2).checkBoxLayout - property var buttonLayout: getItem(3).buttonLayout - property var btnWithoutBgAndLabel: getItem(3).btnWithoutBgAndLabel - property var pushButtonLayout: getItem(4).pushButtonLayout + property var sliderLayout + property var sliderWithBtn + property var sliderWithoutBtn + property var switchLayout + property var btnWithColorAndGrabberText + property var checkBoxLayout + property var buttonLayout + property var btnWithoutBgAndLabel + property var pushButtonLayout onContainerItemUpdated: { if(getItem(0)){ @@ -329,8 +329,8 @@ RibbonTabBar { RibbonTabPage{ id: input_page title: qsTr("Input") - property var lineEditLayout: getItem(0).lineEditLayout - property var lineEditWithIcon: getItem(0).lineEditWithIcon + property var lineEditLayout + property var lineEditWithIcon onContainerItemUpdated: { if(getItem(0)){ @@ -503,9 +503,16 @@ RibbonTabBar { } } RibbonTabPage{ + id: progress_page title: qsTr("Progress") + property var progressbarSlider + onContainerItemUpdated:{ + if(getItem(0)) + progressbarSlider = getItem(0).progressbarSlider + } RibbonTabGroup{ width: progressbar_slider.width + 30 + property var progressbarSlider: progressbar_slider RibbonSlider{ id: progressbar_slider anchors.centerIn: parent @@ -526,22 +533,22 @@ RibbonTabBar { ColumnLayout{ RibbonProgressBar{ barWidth: 100 - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 textLabelPosition: RibbonProgressBar.LabelPosition.Top } RibbonProgressBar{ barWidth: 100 - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 textLabelPosition: RibbonProgressBar.LabelPosition.Left } RibbonProgressBar{ barWidth: 100 - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 textLabelPosition: RibbonProgressBar.LabelPosition.Right } RibbonProgressBar{ barWidth: 100 - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 textLabelPosition: RibbonProgressBar.LabelPosition.Bottom } } @@ -577,7 +584,7 @@ RibbonTabBar { barWidth: 100 indeterminate: false showText: false - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 } } } @@ -593,26 +600,26 @@ RibbonTabBar { RowLayout{ RibbonProgressRing{ barWidth: 30 - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 textLabelPosition: RibbonProgressBar.LabelPosition.Top } RibbonProgressRing{ barWidth: 30 - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 textLabelPosition: RibbonProgressBar.LabelPosition.Left } RibbonProgressRing{ barWidth: 30 - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 textLabelPosition: RibbonProgressBar.LabelPosition.Right } RibbonProgressRing{ barWidth: 30 - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 textLabelPosition: RibbonProgressBar.LabelPosition.Bottom } RibbonProgressRing{ - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 centerInTextLabel: true } } @@ -652,7 +659,7 @@ RibbonTabBar { barWidth: 30 indeterminate: false showText: false - value: progressbar_slider.value / 100 + value: progress_page.progressbarSlider ? progress_page.progressbarSlider.value / 100 : 0 } } } diff --git a/lib_source/qml/Qt5/RibbonTabPage.qml b/lib_source/qml/Qt5/RibbonTabPage.qml index f2503bc..17932e6 100644 --- a/lib_source/qml/Qt5/RibbonTabPage.qml +++ b/lib_source/qml/Qt5/RibbonTabPage.qml @@ -11,7 +11,7 @@ Item { property bool needActive: SwipeView.isCurrentItem || SwipeView.isNextItem || SwipeView.isPreviousItem property var delegateList: [] - readonly property var contentItem: main_loader.item.containerItem + readonly property var contentItem: main_loader.item ? main_loader.item.containerItem : undefined signal containerItemUpdated() clip: true @@ -45,7 +45,7 @@ Item { model: control.delegateList Loader{ required property var modelData - width: item.width + width: item ? item.width : 0 Layout.fillHeight: true active: control.needActive sourceComponent: control.delegateList[modelData.index].content @@ -56,7 +56,7 @@ Item { onLoaded: containerItemUpdated() } - function getItem( index : int ){ + function getItem( index ){ return contentItem.children[index].item } diff --git a/lib_source/qml/Qt6/RibbonTabPage.qml b/lib_source/qml/Qt6/RibbonTabPage.qml index b1ea490..cea9c6b 100644 --- a/lib_source/qml/Qt6/RibbonTabPage.qml +++ b/lib_source/qml/Qt6/RibbonTabPage.qml @@ -11,7 +11,7 @@ Item { property bool needActive: SwipeView.isCurrentItem || SwipeView.isNextItem || SwipeView.isPreviousItem property var delegateList: [] - readonly property var contentItem: main_loader.item.containerItem + readonly property var contentItem: main_loader.item ? main_loader.item.containerItem : undefined signal containerItemUpdated() clip: true @@ -45,7 +45,7 @@ Item { model: control.delegateList Loader{ required property var modelData - width: item.width + width: item ? item.width : 0 Layout.fillHeight: true active: control.needActive sourceComponent: control.delegateList[modelData.index].content @@ -56,7 +56,7 @@ Item { onLoaded: containerItemUpdated() } - function getItem( index : int ){ + function getItem( index ){ return contentItem.children[index].item }