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
Forum Updated to NodeBB v4.3 + New Features

Read of delegate objectName

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