Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Enterprise Tumblers Issue- Junk data is seen on backside
Forum Update on Monday, May 27th 2025

Enterprise Tumblers Issue- Junk data is seen on backside

Scheduled Pinned Locked Moved Unsolved QML and Qt Quick
4 Posts 2 Posters 933 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    B Offline
    Beemaneni Bala
    wrote on last edited by
    #1

    Hi Guys,
    I have an strange issue with tumblers. i have been working on those for long and i found an issue with my code as i see some junk data on the tumblers backside.I dont know what i am doing wrong.
    I have 3 radio buttons and three tumblers on my page.When my 1st tumbler is
    loaded i.e., on component completed i am setting radio button 1 to true .
    After that i am doing some calculations and loading data into tumblers when
    radiobutton is checked. But i am not sure what is that junk data seen behind
    the scene.
    Please share your thoughts and i am hopeful that i explained my issue clearly

    1 Reply Last reply
    0
    • dheerendraD Offline
      dheerendraD Offline
      dheerendra
      Qt Champions 2022
      wrote on last edited by
      #2

      Can you paste your sample code here ? It helps the check it quickly.

      Dheerendra
      @Community Service
      Certified Qt Specialist
      http://www.pthinks.com

      B 1 Reply Last reply
      3
      • dheerendraD dheerendra

        Can you paste your sample code here ? It helps the check it quickly.

        B Offline
        B Offline
        Beemaneni Bala
        wrote on last edited by
        #3
        //your code here
        
        
            Row {
                id: topArrowImageRow
                anchors{left: setpointName.right ;leftMargin: 140;top:parent.top;topMargin: 40 }
                spacing: 110
        
                Image{
                    id: downArrow1
                    source: setpointEditsobj.downArrow1source
                    MouseArea{
                        anchors.fill: parent
                        onClicked: {
                            if(rbtn1.checked)
                               setPointTumbler1.setCurrentIndexAt(0,column1.currentIndex+1)
                            else if(rbtn2.checked)
                               warmPointTumbler1.setCurrentIndexAt(0,column12.currentIndex+1)
                            else if(rbtn3.checked)
                               coldPointTumbler1.setCurrentIndexAt(0,column13.currentIndex+1)
                        }
                    }
                }
        
                Image{
                    id: downArrow2
                    source: setpointEditsobj.downArrow2source
                    MouseArea{
                        anchors.fill: parent
                        onClicked: {
                            if(rbtn1.checked)
                               setPointTumbler2.setCurrentIndexAt(0,column2.currentIndex+1)
                            else if(rbtn2.checked)
                               warmPointTumbler2.setCurrentIndexAt(0,column22.currentIndex+1)
                            else if(rbtn3.checked)
                               coldPointTumbler2.setCurrentIndexAt(0,column23.currentIndex+1)
                        }
                    }
                }
            }
        
            Row {
                id: setPointRow
                anchors{left:  setpointName.right ;leftMargin: 75;top: topArrowImageRow.bottom;topMargin: 40 }
                spacing: 1
        
                Tumbler {
                    id: setPointTumbler1
                    height: setpointEditsobj.tumblerheight
                    clip: true
        
                    TumblerColumn {
                        id: column1
                        width: 120
                        model: /*setpointTumblerModel1*/[0,1,2,3,4,5]
                        onCurrentIndexChanged: {
                           console.log("Set point tumbler index changed: "+rbtn1.checked + ":  "+rbtn2.checked + ": "+rbtn3.checked)
                            if(rbtn1.checked){
                                console.log("Setpoint Radio Button Checked: "+setpointTumblerModel1.count)
                                setpointTumblerModel2.clear()
                                if(tempSetPoint<0){
                                    if(setpointTumblerModel1.get(column1.currentIndex).data === Math.ceil(minSetPointLimit/10))
                                    {
                                        for(var i=0;i<=Math.abs(minSetPointLimit%10);i++)
                                        {
                                            setpointTumblerModel2.append({data: i})
                                        }
                                    }
                                    else if(setpointTumblerModel1.get(column1.currentIndex).data === Math.ceil(maxSetPointLimit/10))
                                    {
                                        for(var j=Math.abs(maxSetPointLimit%10);j<=9;j++)
                                        {
                                            setpointTumblerModel2.append({data: j})
                                        }
                                    }
                                    else
                                    {
                                        for(var k=0;k<=9;k++)
                                        {
                                            setpointTumblerModel2.append({data: k})
                                        }
                                    }
                                    if(setPtChange===0){
                                        setPtChange++
                                        var cur_point =tempSetPoint
                                        var onesValue = Math.abs(cur_point) % 10
                                        setPointTumbler2.setCurrentIndexAt(0,onesValue)
                                    }
                                }
                                col1=setpointTumblerModel1.get(currentIndex).data
                                col2=setpointTumblerModel2.get(currentIndex).data
                            }
                        }
                    }
        
                    style: TumblerStyle {
                        padding.top: -20
                        padding.bottom: -20
                        property Component frame: compFrame
                        property Component foreground: Item {}
                        delegate: tumblerDelegate
                    }
        
                    Component.onCompleted: {
                        if(parentRegion.appSettings.setpointsActive===0){
                            rbtn1.checked=true
                        }
                        else if(parentRegion.appSettings.setpointsActive===1) {
                            rbtn2.checked=true
                        }
                        else if(parentRegion.appSettings.setpointsActive===2){
                            rbtn3.checked=true
                        }
                    }
                }
        
                Tumbler {
                    id: setPointTumbler2
                    clip: true
                    height: setpointEditsobj.tumblerheight
                    visible: setPointRow.visible
        
                    TumblerColumn {
                        id: column2
                        width: 120
                        model: setpointTumblerModel2
                    }
                    style: TumblerStyle {
        
                        padding.top: -20
                        padding.bottom: -20
                        property Component frame: compFrame
                        property Component foreground: Item {}
                        delegate: tumblerDelegate
                    }
                }
            }
        
            Row {
                id: warmPointRow
                anchors{left:  setpointName.right ;leftMargin: 75;top: topArrowImageRow.bottom;topMargin: 40 }
                spacing: 1
        
        
                Tumbler {
                    id: warmPointTumbler1
                    height: setpointEditsobj.tumblerheight
                    clip: true
        
                    TumblerColumn {
                        id: column12
                        width: 120
                        model: warmPointTumblerModel1
                        onCurrentIndexChanged: {
                            console.log("Warm point tumbler index changed")
                                if(rbtn2.checked){
                                    warmPointTumblerModel2.clear()
                                    console.log("Warm point Radio Button Checked: "+warmPointTumblerModel1.count)
                                    if(warmSetPoint<0){
                                        if(warmPointTumblerModel1.get(column12.currentIndex).data === Math.ceil(minWarmPointLimit/10))
                                        {
                                            for(var i1=0;i1<=Math.abs(minWarmPointLimit%10);i1++)
                                            {
                                                warmPointTumblerModel2.append({data: i1})
                                            }
                                        }
                                        else if(warmPointTumblerModel1.get(column12.currentIndex).data === Math.ceil(maxWarmPointLimit/10))
                                        {
                                            for(var j1=Math.abs(maxWarmPointLimit%10);j1<=9;j1++)
                                            {
                                                warmPointTumblerModel2.append({data: j1})
                                            }
                                        }
                                        else
                                        {
                                            for(var k1=0;k1<=9;k1++)
                                            {
                                                warmPointTumblerModel2.append({data: k1})
                                            }
                                        }
                                        if(warmPtChange===0){
                                            warmPtChange++
                                            var cur_point1 =warmSetPoint
                                            var onesValue1 = Math.abs(cur_point1) % 10
                                            warmPointTumbler2.setCurrentIndexAt(0,onesValue1)
                                        }
                                    }
                                }
                        }
                    }
        
                    style: TumblerStyle {
                        padding.top: -20
                        padding.bottom: -20
                        property Component frame: compFrame
                        property Component foreground: Item {}
                        delegate: tumblerDelegate
                    }
                }
        
                Tumbler {
                    id: warmPointTumbler2
                    clip: true
                    height: setpointEditsobj.tumblerheight
                    visible: warmPointRow.visible
        
                    TumblerColumn {
                        id: column22
                        width: 120
                        model: warmPointTumblerModel2
                    }
                    style: TumblerStyle {
        
                        padding.top: -20
                        padding.bottom: -20
                        property Component frame: compFrame
                        property Component foreground: Item {}
                        delegate: tumblerDelegate
                    }
                }
            }
        
            Row {
                id: coldPointRow
                anchors{left:  setpointName.right ;leftMargin: 75;top: topArrowImageRow.bottom;topMargin: 40 }
                spacing: 1
        
                Tumbler {
                    id: coldPointTumbler1
                    height: setpointEditsobj.tumblerheight
                    clip: true
        
                    TumblerColumn {
                        id: column13
                        width: 120
                        model: coldPointTumblerModel1
                        onCurrentIndexChanged: {
                            console.log("Cold point tumbler index changed")
                                if(rbtn3.checked){
                                    coldPointTumblerModel2.clear()
                                    console.log("Cold Point radio  button checked: "+coldPointTumblerModel1.count)
                                    if(coldSetPoint<0){
                                        if(coldPointTumblerModel1.get(column13.currentIndex).data === Math.ceil(minColdPointLimit/10))
                                        {
                                            for(var i11=0;i11<=Math.abs(minColdPointLimit%10);i11++)
                                            {
                                                coldPointTumblerModel2.append({data: i11})
                                            }
                                        }
                                        else if(coldPointTumblerModel1.get(column13.currentIndex).data === Math.ceil(maxColdPointLimit/10))
                                        {
                                            for(var j11=Math.abs(maxColdPointLimit%10);j11<=9;j11++)
                                            {
                                                coldPointTumblerModel2.append({data: j11})
                                            }
                                        }
                                        else
                                        {
                                            for(var k11=0;k11<=9;k11++)
                                            {
                                                coldPointTumblerModel2.append({data: k11})
                                            }
                                        }
                                        if(coldPtChange===0){
                                            coldPtChange++
                                            var cur_point2 =coldSetPoint
                                            var onesValue2 = Math.abs(cur_point2) % 10
                                            coldPointTumbler2.setCurrentIndexAt(0,onesValue2)
                                        }
                                    }
                                }
                        }
                    }
        
                    style: TumblerStyle {
                        padding.top: -20
                        padding.bottom: -20
                        property Component frame: compFrame
                        property Component foreground: Item {}
                        delegate: tumblerDelegate
                    }
                }
        
                Tumbler {
                    id: coldPointTumbler2
                    clip: true
                    height: setpointEditsobj.tumblerheight
                    visible: coldPointRow.visible
        
                    TumblerColumn {
                        id: column23
                        width: 120
                        model: coldPointTumblerModel2
                    }
                    style: TumblerStyle {
        
                        padding.top: -20
                        padding.bottom: -20
                        property Component frame: compFrame
                        property Component foreground: Item {}
                        delegate: tumblerDelegate
                    }
                }
            }
        
        
        
        
            Row {
                id: bottomArrowImageRow
                anchors{left:  setpointName.right ;leftMargin: 140;top: rbtn1.checked ? setPointRow.bottom : rbtn2.checked ? warmPointRow.bottom : coldPointRow.bottom;topMargin: 40}
                spacing: 110
        
                Image{
                    id: downArrow4
                    source: setpointEditsobj.downArrow4source
                    MouseArea{
                        anchors.fill: parent
                        onClicked: {
                            if(rbtn1.checked)
                               setPointTumbler1.setCurrentIndexAt(0,column1.currentIndex-1)
                            else if(rbtn2.checked)
                               warmPointTumbler1.setCurrentIndexAt(0,column12.currentIndex-1)
                            else if(rbtn3.checked)
                               coldPointTumbler1.setCurrentIndexAt(0,column13.currentIndex-1)
                        }
                    }
                }
        
                Image{
                    id: downArrow5
                    source: setpointEditsobj.downArrow5source
                    MouseArea{
                        anchors.fill: parent
                        onClicked: {
                            if(rbtn1.checked)
                               setPointTumbler2.setCurrentIndexAt(0,column2.currentIndex-1)
                            else if(rbtn2.checked)
                               warmPointTumbler2.setCurrentIndexAt(0,column22.currentIndex-1)
                            else if(rbtn3.checked)
                               coldPointTumbler2.setCurrentIndexAt(0,column23.currentIndex-1)
                        }
                    }
                }
            }
        
        
            Item {
                id: setpointName
                anchors{left: parent.left;leftMargin: 110;top: parent.top;topMargin: 100}
                width: 300
                height: textName1.contentHeight
                RadioButton{
                    id: rbtn1
                    text: qsTr("Setpoint")
                    width: 180
                    fontColor: "#344550"
                    fontWeight: Font.Normal
                    exclusiveGroup: mutualGroup
                    onCheckedChanged: {
                        if(checked){
                            console.log("Radio Button 1 Checked")
                            setPointRow.visible=true
                            warmPointRow.visible=false
                            coldPointRow.visible=false
                            var cur_point =tempSetPoint
                            var isCurValNegative = cur_point < 0 ? true : false
        
                            if(isCurValNegative){
                                setpointTumblerModel1.clear()
                                for(var s= Math.ceil(minSetPointLimit/10);s<= Math.ceil(maxSetPointLimit/10);s++) {
                                    setpointTumblerModel1.append({data: s})
                                }
                                setpointTumblerModel2.clear()
                                if(Math.ceil(cur_point/10) ===  Math.ceil(minSetPointLimit/10)){
                                    for(var i=0;i<=Math.abs(minSetPointLimit%10);i++)
                                    {
                                        setpointTumblerModel2.append({data: i})
                                    }
                                }
                                else if(Math.ceil(cur_point/10) === Math.ceil(maxSetPointLimit/10)){
                                    for(var j=Math.abs(maxSetPointLimit%10);j<=9;j++)
                                    {
                                        setpointTumblerModel2.append({data: j})
                                    }
                                }
                                else {
                                    for(var k=0;k<=9;k++)
                                    {
                                        setpointTumblerModel2.append({data: k})
                                    }
                                }
                                ones = Math.abs(cur_point) % 10            //8
                                tens =  Math.ceil(cur_point/ 10)
                                if(isCurValNegative){
                                    temp = Math.abs(Math.ceil(minSetPointLimit/10))
                                    console.log("Cocokckcoccocjoccjo: "+setpointTumblerModel1.count)
                                    setPointTumbler1.setCurrentIndexAt(0, (tens+temp))
                                }
                                else{
                                    setPointTumbler1.setCurrentIndexAt(0, 0)
                                }
                                setPointTumbler2.setCurrentIndexAt(0,ones)
                            }
                            else
                            {
                                setpointTumblerModel1.clear()
                                setpointTumblerModel2.clear()
                                for(var ss= 0;ss<= 9;ss++) {
                                    setpointTumblerModel1.append({data: ss})
                                    setpointTumblerModel2.append({data: ss})
                                }
                            }
                        }
                    }
                }
                Text {
                    id: textName1
                    anchors{left: rbtn1.right;leftMargin: 30}
                    anchors.verticalCenter: rbtn1.verticalCenter
                    text: stringSetPointVal + "°C"
                    font.pixelSize: 26
                    font.family: appStyle.font.familyRegular
                    color: "#344550"
                }
            }
            Item {
                id: warmAlarmName
                anchors{left: parent.left;leftMargin: 110;top: setpointName.bottom;topMargin: 38}
                width: 300
                height: textName2.contentHeight
                RadioButton{
                    id: rbtn2
                    text: qsTr("Warm Alarm")
                    width: 180
                    fontColor: "#344550"
                    fontWeight: Font.Normal
                    exclusiveGroup: mutualGroup
                    onCheckedChanged: {
                        if(checked){
                            setPointRow.visible=false
                            coldPointRow.visible=false
                            warmPointRow.visible=true
                            console.log("Radio Button 2 Checked")
                            var cur_point = warmSetPoint
                            var isCurValNegative = cur_point < 0 ? true : false
                            if(isCurValNegative){
                                warmPointTumblerModel1.clear()
                                for(var s= Math.ceil(minWarmPointLimit/10);s<= Math.ceil(maxWarmPointLimit/10);s++)
                                {
                                    warmPointTumblerModel1.append({data: s})
                                }
                                warmPointTumblerModel2.clear()
                                if(warmPointTumblerModel1.get(0).data === Math.ceil(minWarmPointLimit/10) )
                                {
                                    for(var i=0;i<=Math.abs(minWarmPointLimit%10);i++)
                                    {
                                        warmPointTumblerModel2.append({data: i})
                                    }
                                }
                                else if(warmPointTumblerModel1.get(0).data === Math.ceil(maxWarmPointLimit/10) )
                                {
                                    for(var j=Math.abs(maxWarmPointLimit%10);j<=9;j++)
                                    {
                                        warmPointTumblerModel2.append({data: j})
                                    }
                                }
                                else
                                {
                                    for(var k=0;k<=9;k++)
                                    {
                                        warmPointTumblerModel2.append({data: k})
                                    }
                                }
        
                                ones = Math.abs(cur_point) % 10
                                tens = (isCurValNegative  ? Math.ceil(cur_point/ 10) : Math.floor(cur_point/10))
        
                                if(isCurValNegative){
                                    temp = Math.abs(Math.ceil(minWarmPointLimit/10))
                                    console.log("Cocokckcoccocjoccjo: "+warmPointTumblerModel1.count)
                                    warmPointTumbler1.setCurrentIndexAt(0, tens+temp)
                                }
                                else{
                                    temp = Math.abs(Math.ceil(maxWarmPointLimit/10))
                                    warmPointTumbler1.setCurrentIndexAt(0, 0)
                                }
                                warmPointTumbler2.setCurrentIndexAt(0,ones)
                            }
                            else
                            {
                                warmPointTumblerModel1.clear()
                                warmPointTumblerModel2.clear()
                                for(var ss= 0;ss<= 9;ss++) {
                                    warmPointTumblerModel1.append({data: ss})
                                    warmPointTumblerModel2.append({data: ss})
                                }
                            }
                        }
                    }
                }
                Text {
                    id: textName2
                    anchors{left: rbtn2.right;leftMargin: 30}
                    anchors.verticalCenter: rbtn2.verticalCenter
                    text: stringWarmSetPointVal + "°C"
                    font.pixelSize: 26
                    font.family: appStyle.font.familyRegular
                    color: "#344550"
                }
            }
            Item {
                id: coldAlarmName
                anchors{left: parent.left;leftMargin: 110;top: warmAlarmName.bottom;topMargin: 38}
                width: 300
                height: textName3.contentHeight
                RadioButton{
                    id: rbtn3
                    text: qsTr("Cold Alarm")
                    fontColor: "#344550"
                    fontWeight: Font.Normal
                    width: 180
                    exclusiveGroup: mutualGroup
                    onCheckedChanged: {
                        if(checked){
                            setPointRow.visible=false
                            warmPointRow.visible=false
                            coldPointRow.visible=true
                            console.log("Radio Button 3 Checked")
                            var cur_point = coldSetPoint
                            var isCurValNegative = cur_point < 0 ? true : false
                            if(isCurValNegative){
                                coldPointTumblerModel1.clear()
                                for(var s= Math.ceil(minColdPointLimit/10);s<= Math.ceil(maxColdPointLimit/10);s++)
                                {
                                    coldPointTumblerModel1.append({data: s})
                                }
                                coldPointTumblerModel2.clear()
                                if(coldPointTumblerModel1.get(0).data === Math.ceil(minColdPointLimit/10))
                                {
                                    for(var i=0;i<=Math.abs(minColdPointLimit%10);i++)
                                    {
                                        coldPointTumblerModel2.append({data: i})
                                    }
                                }
                                else if(coldPointTumblerModel1.get(0).data === Math.ceil(maxColdPointLimit/10))
                                {
                                    for(var j=Math.abs(maxColdPointLimit%10);j<=9;j++)
                                    {
                                        coldPointTumblerModel2.append({data: j})
                                    }
                                }
                                else
                                {
                                    for(var k=0;k<=9;k++)
                                    {
                                        coldPointTumblerModel2.append({data: k})
                                    }
                                }
        
                                ones = Math.abs(cur_point) % 10
                                tens = (isCurValNegative  ? Math.ceil(cur_point/ 10) : Math.floor(cur_point/10))
                                if(isCurValNegative){
                                    temp = Math.abs(Math.ceil(minColdPointLimit/10))
                                    console.log("Cocokckcoccocjoccjo: "+coldPointTumblerModel1.count)
                                    coldPointTumbler1.setCurrentIndexAt(0, tens+temp)
                                }
                                else{
                                    temp = Math.abs(Math.ceil(minColdPointLimit/10))
                                    coldPointTumbler1.setCurrentIndexAt(0, tens+temp-1)
                                }
                                coldPointTumbler2.setCurrentIndexAt(0,ones)
                            }
                            else
                            {
                                coldPointTumblerModel1.clear()
                                coldPointTumblerModel2.clear()
                                for(var ss= 0;ss<= 9;ss++) {
                                    coldPointTumblerModel1.append({data: ss})
                                    coldPointTumblerModel2.append({data: ss})
                                }
                            }
                        }
                    }
                }
                Text {
                    id: textName3
                    anchors{left: rbtn3.right;leftMargin: 30}
                    anchors.verticalCenter: rbtn3.verticalCenter
                    text: stringColdSetPointVal + "°C"
                    font.pixelSize: 26
                    color: "#344550"
                    font.family: appStyle.font.familyRegular
                }
            }
        

        Pls check out this

        1 Reply Last reply
        0
        • B Offline
          B Offline
          Beemaneni Bala
          wrote on last edited by
          #4

          Hi ,
          I understood the reason of odd behaviour.It is, when i do clear the model or update the model it happens.Its because as soon as i clear model , index gets changed and it gives me "undefined data" error. so it stops when error occurs. But without clearing data, i cannot create a new column of data . So is there any other option that i want to delay current Index changed signal to stop emit until i update a model.

          Regards
          Bala B

          1 Reply Last reply
          0

          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved