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. Settings: how to save the status of multiple switch in a page reused many time
Qt 6.11 is out! See what's new in the release blog

Settings: how to save the status of multiple switch in a page reused many time

Scheduled Pinned Locked Moved Unsolved QML and Qt Quick
24 Posts 4 Posters 4.3k Views 2 Watching
  • 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.
  • gfxxG Offline
    gfxxG Offline
    gfxx
    wrote on last edited by gfxx
    #1

    I've add some switch in a repeater in these manner:

    Rectangle {
         id: myRect
      /* layout definition*/
    
                     Row {
                                        id: rowRep3
                                        x: 0
                                        y: 0
                                        width: 400
                                        height: 618
                                        Grid {
                                            id: clnm1AB2
                                            y: 0
                                            x: 20
                                            width: 380
                                            height: 618
                                            spacing: -10
                                            columns: 2
                                            rows: 16
                                            Repeater {
                                                id: emRep
                                                model: 32
                                                delegate: Switch {
                                                    x: 0
                                                    width: 190
                                                    text: modelTabE[index]
                                                    checked: swSE.parent["esw"+index]
                                                    Material.accent: Material.DeepOrange
                                                    font.family: "Courier"
                                                }
                                            }
                                        }
                                    }
    
        Settings {
            id: swSE
    
            property bool esw0: false
            property bool esw1: false
            property bool esw2: false
            property bool esw3: false
            property bool esw4: false
            property bool esw5: false
            property bool esw6: false
            property bool esw8: false
            property bool esw9: false
            property bool esw10: false
            property bool esw11: false
            property bool esw12: false
            property bool esw13: false
            property bool esw14: false
            property bool esw15: false
            property bool esw16: false
            property bool esw17: false
            property bool esw18: false
            property bool esw19: false
            property bool esw20: false
            property bool esw21: false
            property bool esw22: false
            property bool esw23: false
            property bool esw24: false
            property bool esw25: false
            property bool esw26: false
            property bool esw27: false
            property bool esw28: false
            property bool esw29: false
            property bool esw30: false
            property bool esw31: false
        }
    
    
    }
    

    But return these error ... and not know why (i'm a beginner in QML)

    TypeError: Cannot read property 'esw0' of undefined /* one for every property so 32 error */
    
    someone can suggest my the right doc or way to understand these problem?
    
    regards
    

    bkt

    JonBJ ODБOïO 2 Replies Last reply
    0
    • gfxxG gfxx

      I've add some switch in a repeater in these manner:

      Rectangle {
           id: myRect
        /* layout definition*/
      
                       Row {
                                          id: rowRep3
                                          x: 0
                                          y: 0
                                          width: 400
                                          height: 618
                                          Grid {
                                              id: clnm1AB2
                                              y: 0
                                              x: 20
                                              width: 380
                                              height: 618
                                              spacing: -10
                                              columns: 2
                                              rows: 16
                                              Repeater {
                                                  id: emRep
                                                  model: 32
                                                  delegate: Switch {
                                                      x: 0
                                                      width: 190
                                                      text: modelTabE[index]
                                                      checked: swSE.parent["esw"+index]
                                                      Material.accent: Material.DeepOrange
                                                      font.family: "Courier"
                                                  }
                                              }
                                          }
                                      }
      
          Settings {
              id: swSE
      
              property bool esw0: false
              property bool esw1: false
              property bool esw2: false
              property bool esw3: false
              property bool esw4: false
              property bool esw5: false
              property bool esw6: false
              property bool esw8: false
              property bool esw9: false
              property bool esw10: false
              property bool esw11: false
              property bool esw12: false
              property bool esw13: false
              property bool esw14: false
              property bool esw15: false
              property bool esw16: false
              property bool esw17: false
              property bool esw18: false
              property bool esw19: false
              property bool esw20: false
              property bool esw21: false
              property bool esw22: false
              property bool esw23: false
              property bool esw24: false
              property bool esw25: false
              property bool esw26: false
              property bool esw27: false
              property bool esw28: false
              property bool esw29: false
              property bool esw30: false
              property bool esw31: false
          }
      
      
      }
      

      But return these error ... and not know why (i'm a beginner in QML)

      TypeError: Cannot read property 'esw0' of undefined /* one for every property so 32 error */
      
      someone can suggest my the right doc or way to understand these problem?
      
      regards
      
      JonBJ Offline
      JonBJ Offline
      JonB
      wrote on last edited by JonB
      #2

      @gfxx
      In your Settings, from esw5 onward you initialize them all to false, which is fine. But for esw0 through esw4 you try to initialize them to "themselves" (property bool esw0: esw0), which can't be right? Then again, I've never done QML.

      gfxxG 1 Reply Last reply
      1
      • gfxxG gfxx

        I've add some switch in a repeater in these manner:

        Rectangle {
             id: myRect
          /* layout definition*/
        
                         Row {
                                            id: rowRep3
                                            x: 0
                                            y: 0
                                            width: 400
                                            height: 618
                                            Grid {
                                                id: clnm1AB2
                                                y: 0
                                                x: 20
                                                width: 380
                                                height: 618
                                                spacing: -10
                                                columns: 2
                                                rows: 16
                                                Repeater {
                                                    id: emRep
                                                    model: 32
                                                    delegate: Switch {
                                                        x: 0
                                                        width: 190
                                                        text: modelTabE[index]
                                                        checked: swSE.parent["esw"+index]
                                                        Material.accent: Material.DeepOrange
                                                        font.family: "Courier"
                                                    }
                                                }
                                            }
                                        }
        
            Settings {
                id: swSE
        
                property bool esw0: false
                property bool esw1: false
                property bool esw2: false
                property bool esw3: false
                property bool esw4: false
                property bool esw5: false
                property bool esw6: false
                property bool esw8: false
                property bool esw9: false
                property bool esw10: false
                property bool esw11: false
                property bool esw12: false
                property bool esw13: false
                property bool esw14: false
                property bool esw15: false
                property bool esw16: false
                property bool esw17: false
                property bool esw18: false
                property bool esw19: false
                property bool esw20: false
                property bool esw21: false
                property bool esw22: false
                property bool esw23: false
                property bool esw24: false
                property bool esw25: false
                property bool esw26: false
                property bool esw27: false
                property bool esw28: false
                property bool esw29: false
                property bool esw30: false
                property bool esw31: false
            }
        
        
        }
        

        But return these error ... and not know why (i'm a beginner in QML)

        TypeError: Cannot read property 'esw0' of undefined /* one for every property so 32 error */
        
        someone can suggest my the right doc or way to understand these problem?
        
        regards
        
        ODБOïO Offline
        ODБOïO Offline
        ODБOï
        wrote on last edited by
        #3

        Hi,
        Please tell us explicitly what you are trying to do

        @gfxx said in TypeError: Cannot read property 'esw0' of undefined Repeater + Settings:

        checked: swSE.parent["esw"+index]

        you can not do this.

        If your aim is to save the state (checked property) of your Switchs , please see if the approach used here can help
        https://stackoverflow.com/questions/48730166/how-to-save-and-restore-the-content-of-a-listmodel

        gfxxG 1 Reply Last reply
        1
        • JonBJ JonB

          @gfxx
          In your Settings, from esw5 onward you initialize them all to false, which is fine. But for esw0 through esw4 you try to initialize them to "themselves" (property bool esw0: esw0), which can't be right? Then again, I've never done QML.

          gfxxG Offline
          gfxxG Offline
          gfxx
          wrote on last edited by
          #4

          @JonB said in TypeError: Cannot read property 'esw0' of undefined Repeater + Settings:

          In your Settings, from esw5 onward you initialize them all to false, which is fine. But for esw0 through esw4 you try to initialize them to "themselves" (property bool esw0: esw0), which can't be right? Then again, I've never done QML.

          this is an horrible copy and paste error when write these post ... I correct it.

          bkt

          JonBJ 1 Reply Last reply
          0
          • ODБOïO ODБOï

            Hi,
            Please tell us explicitly what you are trying to do

            @gfxx said in TypeError: Cannot read property 'esw0' of undefined Repeater + Settings:

            checked: swSE.parent["esw"+index]

            you can not do this.

            If your aim is to save the state (checked property) of your Switchs , please see if the approach used here can help
            https://stackoverflow.com/questions/48730166/how-to-save-and-restore-the-content-of-a-listmodel

            gfxxG Offline
            gfxxG Offline
            gfxx
            wrote on last edited by
            #5

            @LeLev said in TypeError: Cannot read property 'esw0' of undefined Repeater + Settings:

            If your aim is to save the state (checked property) of your Switchs , please see if the approach used here can help

            yes I'm try to do these .... but I create a page with many switch and reuse it more time (30 more or less). i need to save the status of the switches whenever it is needed (onDestruction, button.onPressed etc etc). I should save the status of the switches on every single page. From what I understand you can't use array or vector of switch in qml if you want to use Settings .... so I'm looking for the right way to do it without writing thousands of boring lines of code.

            not sure your link is the solution .... not have the model of switch only repeater with numeric model. Plus I'm novice in qml/java ....

            From what I understand I should use, in my case, a listview with a specially created model, perhaps with ListModel, and then serialize the data. Should I serialize only the checked value or can I serialize other data? In C ++ I would use a vector or array of arrays ... in qml I don't know.

            bkt

            ODБOïO 1 Reply Last reply
            0
            • gfxxG gfxx

              @LeLev said in TypeError: Cannot read property 'esw0' of undefined Repeater + Settings:

              If your aim is to save the state (checked property) of your Switchs , please see if the approach used here can help

              yes I'm try to do these .... but I create a page with many switch and reuse it more time (30 more or less). i need to save the status of the switches whenever it is needed (onDestruction, button.onPressed etc etc). I should save the status of the switches on every single page. From what I understand you can't use array or vector of switch in qml if you want to use Settings .... so I'm looking for the right way to do it without writing thousands of boring lines of code.

              not sure your link is the solution .... not have the model of switch only repeater with numeric model. Plus I'm novice in qml/java ....

              From what I understand I should use, in my case, a listview with a specially created model, perhaps with ListModel, and then serialize the data. Should I serialize only the checked value or can I serialize other data? In C ++ I would use a vector or array of arrays ... in qml I don't know.

              ODБOïO Offline
              ODБOïO Offline
              ODБOï
              wrote on last edited by ODБOï
              #6

              You can do it in c++ if you want.
              In pure qml /javascript you can do like this (this went little bit wrong with the "true" but works..)

              @gfxx

              import QtQuick 2.9
              import QtQuick.Controls 2.5
              import Qt.labs.settings 1.0
              
              ApplicationWindow {
                  visible: true
                  width: 640
                  height: 480
                  id:rt
              
                  Settings {
                      property alias settingData: rt.settingData
                  }
              
                  property var settingData: [] //
              
                  onClosing: {
                      var datamodel = []
              
                      for (var i = 0; i < emRep.model; ++i) {
                          if(emRep.itemAt(i).checked){
                              datamodel.push("true")
                          }
                          else{
                              datamodel.push("false")
                          }
                      }
                      settingData = datamodel
                  }
              
              
                  Rectangle {
                      id: myRect
                      /* layout definition*/
              
                      Row {
                          id: rowRep3
                          x: 0
                          y: 0
                          width: 400
                          height: 618
                          Grid {
                              id: clnm1AB2
                              y: 0
                              x: 20
                              width: 380
                              height: 618
                              spacing: -10
                              columns: 2
                              rows: 16
                              Repeater {
                                  id: emRep
                                  model: 5
                                  Switch {
              
                                      x: 0
                                      width: 190
                                      checked: settingData[index] === "true" ? true : false
                                      font.family: "Courier"
                                  }
                              }
                          }
                      }
                  }
              }
              
              gfxxG 1 Reply Last reply
              1
              • ODБOïO ODБOï

                You can do it in c++ if you want.
                In pure qml /javascript you can do like this (this went little bit wrong with the "true" but works..)

                @gfxx

                import QtQuick 2.9
                import QtQuick.Controls 2.5
                import Qt.labs.settings 1.0
                
                ApplicationWindow {
                    visible: true
                    width: 640
                    height: 480
                    id:rt
                
                    Settings {
                        property alias settingData: rt.settingData
                    }
                
                    property var settingData: [] //
                
                    onClosing: {
                        var datamodel = []
                
                        for (var i = 0; i < emRep.model; ++i) {
                            if(emRep.itemAt(i).checked){
                                datamodel.push("true")
                            }
                            else{
                                datamodel.push("false")
                            }
                        }
                        settingData = datamodel
                    }
                
                
                    Rectangle {
                        id: myRect
                        /* layout definition*/
                
                        Row {
                            id: rowRep3
                            x: 0
                            y: 0
                            width: 400
                            height: 618
                            Grid {
                                id: clnm1AB2
                                y: 0
                                x: 20
                                width: 380
                                height: 618
                                spacing: -10
                                columns: 2
                                rows: 16
                                Repeater {
                                    id: emRep
                                    model: 5
                                    Switch {
                
                                        x: 0
                                        width: 190
                                        checked: settingData[index] === "true" ? true : false
                                        font.family: "Courier"
                                    }
                                }
                            }
                        }
                    }
                }
                
                gfxxG Offline
                gfxxG Offline
                gfxx
                wrote on last edited by
                #7

                @LeLev wow ... thanks! ... but if reuse the page (so not on ApplicationWindows location, but on swipePage for example, because contains other nested pages) i must use in these manner:

                Settings {
                        property alias settingData: mySwipePage.myNestedPage1.settingData1 /*with datamodel1*/
                        property alias settingData: mySwipePage.myNestedPage2.settingData2 /*with datamodel2*/
                        property alias settingData: mySwipePage.myNestedPage3.settingData3 /*with datamodel3*/
                        property alias settingData: mySwipePage.myNestedPage4.settingData4 /*with datamodel4*/
                
                    }
                

                or only in these one:

                property alias settingData: rt.settingData  /* so only in mainApp page?*/
                

                bkt

                1 Reply Last reply
                0
                • gfxxG gfxx

                  @JonB said in TypeError: Cannot read property 'esw0' of undefined Repeater + Settings:

                  In your Settings, from esw5 onward you initialize them all to false, which is fine. But for esw0 through esw4 you try to initialize them to "themselves" (property bool esw0: esw0), which can't be right? Then again, I've never done QML.

                  this is an horrible copy and paste error when write these post ... I correct it.

                  JonBJ Offline
                  JonBJ Offline
                  JonB
                  wrote on last edited by JonB
                  #8

                  @gfxx
                  Bearing in mind I've said I don't do QML...
                  ...Are you sure those

                  TypeError: Cannot read property 'esw0' of undefined /* one for every property so 32 error */

                  are coming as QML is encountering ("compiling"?) the lines you show, because they look alright to me? It sounds (to me) like a runtime error when your code is executing, where somewhere you are accessing a Settings.esw0 and, for whatever reason, there is no Settings object/instance. Then it would know what the esw0 property is defined as, but it's trying to get it off a JavaScript undefined object?

                  ODБOïO gfxxG 2 Replies Last reply
                  0
                  • JonBJ JonB

                    @gfxx
                    Bearing in mind I've said I don't do QML...
                    ...Are you sure those

                    TypeError: Cannot read property 'esw0' of undefined /* one for every property so 32 error */

                    are coming as QML is encountering ("compiling"?) the lines you show, because they look alright to me? It sounds (to me) like a runtime error when your code is executing, where somewhere you are accessing a Settings.esw0 and, for whatever reason, there is no Settings object/instance. Then it would know what the esw0 property is defined as, but it's trying to get it off a JavaScript undefined object?

                    ODБOïO Offline
                    ODБOïO Offline
                    ODБOï
                    wrote on last edited by
                    #9

                    @JonB hi ,
                    the TypeError is because of this line in the Repeater i belive

                    checked: swSE.parent["esw"+index]
                    
                    1 Reply Last reply
                    2
                    • JonBJ JonB

                      @gfxx
                      Bearing in mind I've said I don't do QML...
                      ...Are you sure those

                      TypeError: Cannot read property 'esw0' of undefined /* one for every property so 32 error */

                      are coming as QML is encountering ("compiling"?) the lines you show, because they look alright to me? It sounds (to me) like a runtime error when your code is executing, where somewhere you are accessing a Settings.esw0 and, for whatever reason, there is no Settings object/instance. Then it would know what the esw0 property is defined as, but it's trying to get it off a JavaScript undefined object?

                      gfxxG Offline
                      gfxxG Offline
                      gfxx
                      wrote on last edited by gfxx
                      #10

                      @JonB said in Settings: how to save the status of multiple switch in a page reused many time:

                      where somewhere you are accessing a Settings.esw0 and, for whatever reason, there is no Settings object/instance.

                      Yes you are in right (but not about runtime).... but these because Settings is Sqlite based system ... so it no appreciate non unique index data .... yes, but I suspect it is because Settings is a system based on Sqlite queries and probably with a single table, so the non-unique indexes and names are not appreciated. We must try to get around this obstacle. In C ++ I have always used special databases, never even used QSetting before now. ..... all stems from the fact that as you may have noticed the programmers, all of them, are basic lazy people;))) jokes aside, I really don't think that Setting is created to instantiate multiple tables of data at the same time ... a shame.

                      @LeLev said in Settings: how to save the status of multiple switch in a page reused many time:

                      @JonB hi ,
                      the TypeError is because of this line in the Repeater i belive
                      checked: swSE.parent["esw"+index]

                      that's exactly what I think (and the summary of my talk above)

                      bkt

                      ODБOïO 1 Reply Last reply
                      0
                      • gfxxG gfxx

                        @JonB said in Settings: how to save the status of multiple switch in a page reused many time:

                        where somewhere you are accessing a Settings.esw0 and, for whatever reason, there is no Settings object/instance.

                        Yes you are in right (but not about runtime).... but these because Settings is Sqlite based system ... so it no appreciate non unique index data .... yes, but I suspect it is because Settings is a system based on Sqlite queries and probably with a single table, so the non-unique indexes and names are not appreciated. We must try to get around this obstacle. In C ++ I have always used special databases, never even used QSetting before now. ..... all stems from the fact that as you may have noticed the programmers, all of them, are basic lazy people;))) jokes aside, I really don't think that Setting is created to instantiate multiple tables of data at the same time ... a shame.

                        @LeLev said in Settings: how to save the status of multiple switch in a page reused many time:

                        @JonB hi ,
                        the TypeError is because of this line in the Repeater i belive
                        checked: swSE.parent["esw"+index]

                        that's exactly what I think (and the summary of my talk above)

                        ODБOïO Offline
                        ODБOïO Offline
                        ODБOï
                        wrote on last edited by
                        #11

                        @gfxx said in Settings: how to save the status of multiple switch in a page reused many time:

                        summary

                        checked: swSE.parent["esw"+index]
                        

                        you are trying to access your settings using parent[] attribute, that don't exist
                        check it

                        Component.onCompleted: console.log( swSE.parent  )
                        
                        gfxxG 1 Reply Last reply
                        1
                        • ODБOïO ODБOï

                          @gfxx said in Settings: how to save the status of multiple switch in a page reused many time:

                          summary

                          checked: swSE.parent["esw"+index]
                          

                          you are trying to access your settings using parent[] attribute, that don't exist
                          check it

                          Component.onCompleted: console.log( swSE.parent  )
                          
                          gfxxG Offline
                          gfxxG Offline
                          gfxx
                          wrote on last edited by
                          #12

                          @LeLev Yes not exist ... but because not exist parent attribute of Setting or is possible to make parent attribute of Settings?

                          bkt

                          JonBJ 1 Reply Last reply
                          0
                          • gfxxG gfxx

                            @LeLev Yes not exist ... but because not exist parent attribute of Setting or is possible to make parent attribute of Settings?

                            JonBJ Offline
                            JonBJ Offline
                            JonB
                            wrote on last edited by JonB
                            #13

                            @gfxx
                            swSE is your Settings, and esw0 is an attribute of that. I don't understand why you are trying to use parent? Now that I understand what you're trying to do, don't you simply intend: swSE["esw"+index]? (Whether that works or not is another matter.)

                            gfxxG 1 Reply Last reply
                            2
                            • ODБOïO Offline
                              ODБOïO Offline
                              ODБOï
                              wrote on last edited by ODБOï
                              #14

                              you can do like this

                              Component.onCompleted: console.log( swSE.values[0]  )
                                  Settings {
                                      id: swSE
                                      property variant values : [false,false,true]
                                  ...
                              

                              but cant do this swSE["esw0"]

                              1 Reply Last reply
                              1
                              • Shrinidhi UpadhyayaS Offline
                                Shrinidhi UpadhyayaS Offline
                                Shrinidhi Upadhyaya
                                wrote on last edited by
                                #15

                                Hi @gfxx , you can do like this

                                Here is a sample code:-

                                Settings.qml

                                Rectangle {
                                       id: root
                                
                                       anchors.fill: parent
                                       color: "grey"
                                
                                       property bool a0: false
                                       property bool a1: false
                                       property bool a2: false
                                       property bool a3: false
                                       property bool a4: false
                                       property bool a5: true
                                       property bool a6: true
                                       property bool a7: true
                                       property bool a8: true
                                       property bool a9: true
                                }
                                

                                main.qml

                                 Settings {
                                        id: dummySettings
                                    }
                                
                                Component.onCompleted: {
                                        for(var i=0;i < 10;i++) {
                                            console.log(dummySettings["a" + i])
                                        }
                                    }
                                

                                Shrinidhi Upadhyaya.
                                Upvote the answer(s) that helped you to solve the issue.

                                ODБOïO gfxxG 2 Replies Last reply
                                1
                                • Shrinidhi UpadhyayaS Shrinidhi Upadhyaya

                                  Hi @gfxx , you can do like this

                                  Here is a sample code:-

                                  Settings.qml

                                  Rectangle {
                                         id: root
                                  
                                         anchors.fill: parent
                                         color: "grey"
                                  
                                         property bool a0: false
                                         property bool a1: false
                                         property bool a2: false
                                         property bool a3: false
                                         property bool a4: false
                                         property bool a5: true
                                         property bool a6: true
                                         property bool a7: true
                                         property bool a8: true
                                         property bool a9: true
                                  }
                                  

                                  main.qml

                                   Settings {
                                          id: dummySettings
                                      }
                                  
                                  Component.onCompleted: {
                                          for(var i=0;i < 10;i++) {
                                              console.log(dummySettings["a" + i])
                                          }
                                      }
                                  
                                  ODБOïO Offline
                                  ODБOïO Offline
                                  ODБOï
                                  wrote on last edited by ODБOï
                                  #16

                                  @Shrinidhi-Upadhyaya said in Settings: how to save the status of multiple switch in a page reused many time:

                                  Rectangle

                                  we are talking about Settings QML Type
                                  +sorry but your code does not make sense i belive.. , you can not iterate like that. What you can do in your example is :

                                  for (var i in dummySettings){
                                   console.log(i)
                                  }
                                  

                                  ...

                                  1 Reply Last reply
                                  0
                                  • Shrinidhi UpadhyayaS Offline
                                    Shrinidhi UpadhyayaS Offline
                                    Shrinidhi Upadhyaya
                                    wrote on last edited by Shrinidhi Upadhyaya
                                    #17

                                    Hi @LeLev , actually you guys were discussing about how you can access a variable for example like: esw0,esw1 etc and you have replied that you cant do this swSE["esw0"], but actually you can do it right, the code which i have written is just a sample code, you can replace the rectangle with Settings and inside that create 10variables like esw0,esw1 etc after you can access that in main.qml like the way i have done.

                                    According to you, we can access variable only by this way

                                    dummySettings.a0,dummySettings.a1
                                    

                                    But we can access the variable by the way i have done.

                                    If you copy paste my code, you will be able to see that,you will get the values printed in the console that means you are able to access the variable.

                                    Shrinidhi Upadhyaya.
                                    Upvote the answer(s) that helped you to solve the issue.

                                    ODБOïO gfxxG 3 Replies Last reply
                                    3
                                    • Shrinidhi UpadhyayaS Shrinidhi Upadhyaya

                                      Hi @LeLev , actually you guys were discussing about how you can access a variable for example like: esw0,esw1 etc and you have replied that you cant do this swSE["esw0"], but actually you can do it right, the code which i have written is just a sample code, you can replace the rectangle with Settings and inside that create 10variables like esw0,esw1 etc after you can access that in main.qml like the way i have done.

                                      According to you, we can access variable only by this way

                                      dummySettings.a0,dummySettings.a1
                                      

                                      But we can access the variable by the way i have done.

                                      If you copy paste my code, you will be able to see that,you will get the values printed in the console that means you are able to access the variable.

                                      ODБOïO Offline
                                      ODБOïO Offline
                                      ODБOï
                                      wrote on last edited by ODБOï
                                      #18

                                      @Shrinidhi-Upadhyaya said in Settings: how to save the status of multiple switch in a page reused many time:

                                      actually you can do it right

                                      yes, in fact we can, i didn't knew that

                                      @Shrinidhi-Upadhyaya said in Settings: how to save the status of multiple switch in a page reused many time:

                                      actually you guys were discussing about how you can access a variable for example like: esw0,esw1

                                      the original topic is "how to save Ui state"

                                      1 Reply Last reply
                                      0
                                      • Shrinidhi UpadhyayaS Shrinidhi Upadhyaya

                                        Hi @LeLev , actually you guys were discussing about how you can access a variable for example like: esw0,esw1 etc and you have replied that you cant do this swSE["esw0"], but actually you can do it right, the code which i have written is just a sample code, you can replace the rectangle with Settings and inside that create 10variables like esw0,esw1 etc after you can access that in main.qml like the way i have done.

                                        According to you, we can access variable only by this way

                                        dummySettings.a0,dummySettings.a1
                                        

                                        But we can access the variable by the way i have done.

                                        If you copy paste my code, you will be able to see that,you will get the values printed in the console that means you are able to access the variable.

                                        gfxxG Offline
                                        gfxxG Offline
                                        gfxx
                                        wrote on last edited by
                                        #19

                                        @all

                                        as I can understand ... is not possible "reuse" Settings because is only a table on Sqlite db. But these notice is only my suspicious, not other.
                                        If is right, every time the system make a query on that table (only one) these is not so flexible .... I think is better to use a db instead Settings. In these way I can insert my query create(if not exist) - insert - select - update on myPageComponent and with the use of property string myNewTable I can set outside from myPageComponent, for example in my mainPage or in my nestedMainPage, a new name of data table, so if i create for example 1000 new nested page, I have only the problem of set new table name, and I can make these with a for cicle for example .... better than 1000 of other things.

                                        Any how if someone have notice that these is possible using Settings .... please I need to know these.

                                        regards.

                                        bkt

                                        1 Reply Last reply
                                        0
                                        • JonBJ JonB

                                          @gfxx
                                          swSE is your Settings, and esw0 is an attribute of that. I don't understand why you are trying to use parent? Now that I understand what you're trying to do, don't you simply intend: swSE["esw"+index]? (Whether that works or not is another matter.)

                                          gfxxG Offline
                                          gfxxG Offline
                                          gfxx
                                          wrote on last edited by
                                          #20

                                          @JonB yes these work ... these is a news for my .... sorry. I'm a little bit confusing about QSettings work.

                                          Any how in witch way these can be reused? Only make a new

                                          Setting { id: newSetting1; }
                                          

                                          I think ..... and outside of NestedPage .... so I think I have to run iterate outside of nestedPage and the use per connect property has checked the setting .... a long story how can I see .. .. but it could be that I didn't understand all these things.

                                          bkt

                                          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