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. Read of delegate objectName

Read of delegate objectName

Scheduled Pinned Locked Moved Unsolved QML and Qt Quick
19 Posts 5 Posters 2.8k 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.
  • G Galilio

    Hello everybody,

    I have something like this:
    QML:

    ListView{
    id: listViewId
    objectName:"listViewObj"
    ....
    delegate: Rectangle {
    	id: rectnagleId
    	objectName: "rectangleDelegate"
    	....
    	}
    }
    

    and how can i get the property from the delegate?

    J.HilkJ Offline
    J.HilkJ Offline
    J.Hilk
    Moderators
    wrote on last edited by
    #9

    @galilio said in Read of delegate objectName:

    ListView{
    id: listViewId
    objectName:"listViewObj"
    ....
    delegate: Rectangle {
    	id: rectnagleId
    	objectName: "rectangleDelegate"
    	....
    	}
    }
    
    //to get item and access the properies
    
    function getItemAtIndex(index){
        var item = listViewId.itemAtIndex(index);
        if(item){
              console.log(item.objectName)
        }
    }
    

    Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


    Q: What's that?
    A: It's blue light.
    Q: What does it do?
    A: It turns blue.

    G 1 Reply Last reply
    0
    • J.HilkJ J.Hilk

      @galilio said in Read of delegate objectName:

      ListView{
      id: listViewId
      objectName:"listViewObj"
      ....
      delegate: Rectangle {
      	id: rectnagleId
      	objectName: "rectangleDelegate"
      	....
      	}
      }
      
      //to get item and access the properies
      
      function getItemAtIndex(index){
          var item = listViewId.itemAtIndex(index);
          if(item){
                console.log(item.objectName)
          }
      }
      
      G Offline
      G Offline
      Galilio
      wrote on last edited by
      #10

      @j-hilk
      my qt version is 5.9.1

      J.HilkJ 1 Reply Last reply
      0
      • G Galilio

        @j-hilk
        my qt version is 5.9.1

        J.HilkJ Offline
        J.HilkJ Offline
        J.Hilk
        Moderators
        wrote on last edited by J.Hilk
        #11

        @galilio fair enough.

        alright, trick 17 (untested)

        ListView{
        id: listViewId
        objectName:"listViewObj"
        var testObject: undefined
        signal assignToObject(var id)
        ....
        delegate: Rectangle {
        	id: rectnagleId
        	objectName: "rectangleDelegate"
                Connections{
                     target: listViewId
                     onAssignToObject: if(index === id) listViewId.testObject = rectnagleId
                }
        	....
        	}
        }
        //to get item and access the properies
                onTestObjectChanged:{
                    if(testObject)
                        console.log(testObject.objectName)
                }
        
        

        Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


        Q: What's that?
        A: It's blue light.
        Q: What does it do?
        A: It turns blue.

        1 Reply Last reply
        1
        • G Offline
          G Offline
          Galilio
          wrote on last edited by
          #12

          @j-hilk said in Read of delegate objectName:

          onAssignToObject: if(index === id) listViewId.testObject = rectnagleId

          what is your id here
          Thanks

          J.HilkJ 1 Reply Last reply
          0
          • G Galilio

            @j-hilk said in Read of delegate objectName:

            onAssignToObject: if(index === id) listViewId.testObject = rectnagleId

            what is your id here
            Thanks

            J.HilkJ Offline
            J.HilkJ Offline
            J.Hilk
            Moderators
            wrote on last edited by J.Hilk
            #13

            @galilio said in Read of delegate objectName:

            @j-hilk said in Read of delegate objectName:

            onAssignToObject: if(index === id) listViewId.testObject = rectnagleId

            what is your id here
            Thanks

            the argument of the signal
            signal assignToObject(var id)


            Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


            Q: What's that?
            A: It's blue light.
            Q: What does it do?
            A: It turns blue.

            1 Reply Last reply
            1
            • G Offline
              G Offline
              Galilio
              wrote on last edited by
              #14
              This post is deleted!
              1 Reply Last reply
              0
              • G Offline
                G Offline
                Galilio
                wrote on last edited by
                #15

                Sorry:
                nothing happens
                Slot was not called

                J.HilkJ 1 Reply Last reply
                0
                • G Galilio

                  Sorry:
                  nothing happens
                  Slot was not called

                  J.HilkJ Offline
                  J.HilkJ Offline
                  J.Hilk
                  Moderators
                  wrote on last edited by
                  #16

                  @galilio
                  works fine in my test file

                  import QtQuick 2.12
                  import QtQuick.Window 2.12
                  import QtQuick.Controls 2.0
                  
                  Window {
                      visible: true
                      width: 400
                      height: 750
                      title: qsTr("Hello World")
                  
                      id: root
                      property int testIndex: 0
                      Timer{
                          running: true
                          interval: 1000
                          repeat: true
                          onTriggered: {
                              listViewId.assignToObject(root.testIndex)
                              testIndex++
                              if(testIndex >= 10)
                                  testIndex = 0
                          }
                      }
                  
                      ListView{
                          id: listViewId
                          anchors.fill: parent
                          objectName:"listViewObj"
                          property var testObject: undefined
                          onTestObjectChanged:{
                              if(testObject)
                                  console.log(testObject.objectName)
                          }
                          signal assignToObject(var id)
                  
                          model: 10
                          spacing: 2
                  
                          delegate: Rectangle {
                              id: rectnagleId
                              objectName: "rectangleDelegate" + index
                              Text {
                                  text: modelData
                                  anchors.centerIn: parent
                              }
                              width: listViewId.width
                              height:  20
                              color: "green"
                              Connections{
                                  target: listViewId
                                  onAssignToObject: if(index === id) listViewId.testObject = rectnagleId
                              }
                          }
                      }
                  }
                  

                  Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                  Q: What's that?
                  A: It's blue light.
                  Q: What does it do?
                  A: It turns blue.

                  1 Reply Last reply
                  3
                  • G Offline
                    G Offline
                    Galilio
                    wrote on last edited by
                    #17

                    @J-Hilk

                    and how is it if I want to test the delegate with unit test (in cpp) sorry

                    1 Reply Last reply
                    0
                    • G Galilio

                      I want to write a unittest for the QML file.
                      I could access all objects using ObjectName and check the property.

                      at delegate I can not use objectname and my question how can I access the property within this delegate?

                      S Offline
                      S Offline
                      Shivaraj
                      wrote on last edited by
                      #18

                      @Galilio how do you access the objects using objectName can you share some code

                      dheerendraD 1 Reply Last reply
                      0
                      • S Shivaraj

                        @Galilio how do you access the objects using objectName can you share some code

                        dheerendraD Offline
                        dheerendraD Offline
                        dheerendra
                        Qt Champions 2022
                        wrote on last edited by
                        #19

                        @Shivaraj

                        Delegate you can't access using the object name. These are dynamically created object.

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

                        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