From 3af821668ee23fe40f5f039f56b2483b4dbecd61 Mon Sep 17 00:00:00 2001 From: Mentalflow <312902918@qq.com> Date: Thu, 29 May 2025 15:36:40 +0800 Subject: [PATCH] RibbonTabPage: Fix containerItem read empty issue. --- RibbonUIAPP/qml/Qt5/components/TabBar.qml | 29 ++++++++++------------- RibbonUIAPP/qml/Qt6/components/TabBar.qml | 29 ++++++++++------------- lib_source/qml/Qt5/RibbonTabPage.qml | 11 ++++++++- lib_source/qml/Qt6/RibbonTabPage.qml | 11 ++++++++- 4 files changed, 44 insertions(+), 36 deletions(-) diff --git a/RibbonUIAPP/qml/Qt5/components/TabBar.qml b/RibbonUIAPP/qml/Qt5/components/TabBar.qml index 752dba1..cb75356 100644 --- a/RibbonUIAPP/qml/Qt5/components/TabBar.qml +++ b/RibbonUIAPP/qml/Qt5/components/TabBar.qml @@ -47,17 +47,15 @@ RibbonTabBar { property var pushButtonLayout onContainerItemUpdated: { - if(getItem(0)){ - sliderLayout = getItem(0).sliderLayout - sliderWithBtn = getItem(0).sliderWithBtn - sliderWithoutBtn = getItem(0).sliderWithoutBtn - switchLayout = getItem(1).switchLayout - btnWithColorAndGrabberText = getItem(1).btnWithColorAndGrabberText - checkBoxLayout = getItem(2).checkBoxLayout - buttonLayout = getItem(3).buttonLayout - btnWithoutBgAndLabel = getItem(3).btnWithoutBgAndLabel - pushButtonLayout = getItem(4).pushButtonLayout - } + basic_page.sliderLayout = getItem(0).sliderLayout + basic_page.sliderWithBtn = getItem(0).sliderWithBtn + basic_page.sliderWithoutBtn = getItem(0).sliderWithoutBtn + basic_page.switchLayout = getItem(1).switchLayout + basic_page.btnWithColorAndGrabberText = getItem(1).btnWithColorAndGrabberText + basic_page.checkBoxLayout = getItem(2).checkBoxLayout + basic_page.buttonLayout = getItem(3).buttonLayout + basic_page.btnWithoutBgAndLabel = getItem(3).btnWithoutBgAndLabel + basic_page.pushButtonLayout = getItem(4).pushButtonLayout } RibbonTabGroup{ @@ -333,10 +331,8 @@ RibbonTabBar { property var lineEditWithIcon onContainerItemUpdated: { - if(getItem(0)){ - lineEditLayout = getItem(0).lineEditLayout - lineEditWithIcon = getItem(0).lineEditWithIcon - } + lineEditLayout = getItem(0).lineEditLayout + lineEditWithIcon = getItem(0).lineEditWithIcon } RibbonTabGroup{ @@ -507,8 +503,7 @@ RibbonTabBar { title: qsTr("Progress") property var progressbarSlider onContainerItemUpdated:{ - if(getItem(0)) - progressbarSlider = getItem(0).progressbarSlider + progress_page.progressbarSlider = getItem(0).progressbarSlider } RibbonTabGroup{ width: progressbar_slider.width + 30 diff --git a/RibbonUIAPP/qml/Qt6/components/TabBar.qml b/RibbonUIAPP/qml/Qt6/components/TabBar.qml index cfd63eb..b673e09 100644 --- a/RibbonUIAPP/qml/Qt6/components/TabBar.qml +++ b/RibbonUIAPP/qml/Qt6/components/TabBar.qml @@ -47,17 +47,15 @@ RibbonTabBar { property var pushButtonLayout onContainerItemUpdated: { - if(getItem(0)){ - sliderLayout = getItem(0).sliderLayout - sliderWithBtn = getItem(0).sliderWithBtn - sliderWithoutBtn = getItem(0).sliderWithoutBtn - switchLayout = getItem(1).switchLayout - btnWithColorAndGrabberText = getItem(1).btnWithColorAndGrabberText - checkBoxLayout = getItem(2).checkBoxLayout - buttonLayout = getItem(3).buttonLayout - btnWithoutBgAndLabel = getItem(3).btnWithoutBgAndLabel - pushButtonLayout = getItem(4).pushButtonLayout - } + basic_page.sliderLayout = getItem(0).sliderLayout + basic_page.sliderWithBtn = getItem(0).sliderWithBtn + basic_page.sliderWithoutBtn = getItem(0).sliderWithoutBtn + basic_page.switchLayout = getItem(1).switchLayout + basic_page.btnWithColorAndGrabberText = getItem(1).btnWithColorAndGrabberText + basic_page.checkBoxLayout = getItem(2).checkBoxLayout + basic_page.buttonLayout = getItem(3).buttonLayout + basic_page.btnWithoutBgAndLabel = getItem(3).btnWithoutBgAndLabel + basic_page.pushButtonLayout = getItem(4).pushButtonLayout } RibbonTabGroup{ @@ -333,10 +331,8 @@ RibbonTabBar { property var lineEditWithIcon onContainerItemUpdated: { - if(getItem(0)){ - lineEditLayout = getItem(0).lineEditLayout - lineEditWithIcon = getItem(0).lineEditWithIcon - } + lineEditLayout = getItem(0).lineEditLayout + lineEditWithIcon = getItem(0).lineEditWithIcon } RibbonTabGroup{ @@ -507,8 +503,7 @@ RibbonTabBar { title: QT_TRANSLATE_NOOP("RibbonTabBar", "Progress") property var progressbarSlider onContainerItemUpdated:{ - if(getItem(0)) - progressbarSlider = getItem(0).progressbarSlider + progress_page.progressbarSlider = getItem(0).progressbarSlider } RibbonTabGroup{ width: progressbar_slider.width + 30 diff --git a/lib_source/qml/Qt5/RibbonTabPage.qml b/lib_source/qml/Qt5/RibbonTabPage.qml index 17932e6..5c294f7 100644 --- a/lib_source/qml/Qt5/RibbonTabPage.qml +++ b/lib_source/qml/Qt5/RibbonTabPage.qml @@ -28,6 +28,7 @@ Item { active: control.needActive anchors.fill: parent asynchronous: true + property int loadedItem: 0 sourceComponent: Flickable{ id: view property alias containerItem: container @@ -49,11 +50,19 @@ Item { Layout.fillHeight: true active: control.needActive sourceComponent: control.delegateList[modelData.index].content + onLoaded: main_loader.loadedItem++ } } } } - onLoaded: containerItemUpdated() + Timer{ + running: main_loader.loadedItem === control.delegateCount && main_loader.loadedItem !==0 + interval: 1 + onTriggered: { + main_loader.loadedItem = 0 + containerItemUpdated() + } + } } function getItem( index ){ diff --git a/lib_source/qml/Qt6/RibbonTabPage.qml b/lib_source/qml/Qt6/RibbonTabPage.qml index cea9c6b..f86a7b8 100644 --- a/lib_source/qml/Qt6/RibbonTabPage.qml +++ b/lib_source/qml/Qt6/RibbonTabPage.qml @@ -28,6 +28,7 @@ Item { active: control.needActive anchors.fill: parent asynchronous: true + property int loadedItem: 0 sourceComponent: Flickable{ id: view property alias containerItem: container @@ -49,11 +50,19 @@ Item { Layout.fillHeight: true active: control.needActive sourceComponent: control.delegateList[modelData.index].content + onLoaded: main_loader.loadedItem++ } } } } - onLoaded: containerItemUpdated() + Timer{ + running: main_loader.loadedItem === control.delegateCount && main_loader.loadedItem !==0 + interval: 1 + onTriggered: { + main_loader.loadedItem = 0 + containerItemUpdated() + } + } } function getItem( index ){