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. Overlapping Delegate in listview
QtWS25 Last Chance

Overlapping Delegate in listview

Scheduled Pinned Locked Moved QML and Qt Quick
20 Posts 4 Posters 8.5k 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.
  • R Offline
    R Offline
    ReshmaS
    wrote on last edited by
    #4

    Reshma

    1 Reply Last reply
    0
    • D Offline
      D Offline
      dmcr
      wrote on last edited by
      #5

      you could :

      give an id to your ListView like @id : idLV@

      replace your onClicked: if(shortview.state.....

      by
      @state : index==idLV.isCurrentItem ? 'Details' : 'shortview' @

      In the initial code the state of the first clicked element is not updated when you clicked on a another one.

      Edit
      obviously :)
      @ onClicked: state = idLV.isCurrentItem ? 'Details' : 'shortview'@

      dmcr

      1 Reply Last reply
      0
      • T Offline
        T Offline
        tapadar
        wrote on last edited by
        #6

        The code you gave as an example is too long for people to read and reply. If I have understood correctly thge problem indicated in the first comment, then here is a simple solution. However, I admit this could be done in multiple ways.
        @
        import QtQuick 2.0

        Rectangle{
        id:mainRect
        width:400; height:width

        function showActionList(mousX, mousY){
            if(actionList.opacity>0){
                console.log("visible");
                mainRect.hideActionList();
            }
        
            actionList.x = mousX; actionList.y = mousY;
            actionList.opacity = 1;
        }
        
        function hideActionList(){
            actionList.opacity = 0;
        }
        
        Timer {
            interval: 50; running: false; repeat: false
            onTriggered: mainRect.hideActionList();
        }
        
        ListModel{
            id: mainlistModel
            ListElement{ title:"One";pubDate:"Aug"; param:" 2010" }
            ListElement{ title:"Two";pubDate:"Sep"; param:" 2011" }
            ListElement{ title:"Three";pubDate:"Oct"; param:" 2012" }
        }
        
        ListView{
            id:mainListView
            anchors.fill: parent
            model: mainlistModel
            delegate: Rectangle{
                width: parent.width; height: 40;
                Text {id:txt; anchors.centerIn: parent; text:title+ ": " + pubDate+param }
                Rectangle{ anchors{ top:txt.bottom; horizontalCenter: parent.Center }width: parent.width - 2; height: 1; color: "black"}
                MouseArea{
                    anchors.fill:parent
                    onClicked: mainRect.showActionList(mouseX,mouseY);
                }
            }
        }
        
        ListModel {
            id: listModel
            ListElement{action:"View"}
            ListElement{action:"Edit"}
            ListElement{action:"Delete"}
        }
        
        Component {
            id: actionDelegate
            Rectangle{
                width: 40; height: 30; radius: 3
                border{width: 2; color: "black"}
                Text{id:dText;anchors.centerIn: parent; text:action}
            }
        }
        
        ListView{
            id: actionList
            model:listModel
            width: 180; height: 300
            delegate:  actionDelegate
            opacity: 0
        }
        

        }
        @

        1 Reply Last reply
        0
        • R Offline
          R Offline
          ReshmaS
          wrote on last edited by
          #7

          @dmcr:

          MouseArea {
          id:marea
          anchors.fill:parent
          onClicked: state.index===idLV.isCurrentItem ? 'Details' : 'shortview'

                  }@
          

          I gave a name to my listview

          Now nothing is happening onClicked event.

          Reshma

          1 Reply Last reply
          0
          • D Offline
            D Offline
            dmcr
            wrote on last edited by
            #8

            try
            @ MouseArea {
            id:marea
            anchors.fill:parent
            onClicked: state = index==idLV.isCurrentItem ? 'Details' : 'shortview'

                    }@
            

            Edit
            or obviously :)
            @ onClicked: state = index==idLV.currentIndex ? 'Details' : 'shortview'@

            dmcr

            1 Reply Last reply
            0
            • R Offline
              R Offline
              ReshmaS
              wrote on last edited by
              #9

              @dmcr. still nothing appears.:(

              Reshma

              1 Reply Last reply
              0
              • R Offline
                R Offline
                ReshmaS
                wrote on last edited by
                #10

                can i upload the project file, will tat be easier??

                Reshma

                1 Reply Last reply
                0
                • D Offline
                  D Offline
                  dmcr
                  wrote on last edited by
                  #11

                  The code you gave is a little too long.
                  Try with a simple example, the shortest ( without sorting and with fewer text for example, etc...), then you can fix the bug.

                  dmcr

                  1 Reply Last reply
                  0
                  • R Offline
                    R Offline
                    ReshmaS
                    wrote on last edited by
                    #12

                    OK will try that. Here is the file if you have time kindly go through this.

                    Thanks..

                    Reshma

                    1 Reply Last reply
                    0
                    • D Offline
                      D Offline
                      dmcr
                      wrote on last edited by
                      #13

                      I will try if you give some clean code.

                      dmcr

                      1 Reply Last reply
                      0
                      • R Offline
                        R Offline
                        ReshmaS
                        wrote on last edited by
                        #14

                        http://www.2shared.com/file/-KWQrl3Z/xml_view.html

                        Cleaned up my code mate. Thanks. Iwill also try to do it with simple code.

                        Reshma

                        1 Reply Last reply
                        0
                        • D Offline
                          D Offline
                          dmcr
                          wrote on last edited by
                          #15

                          here it is mate

                          @import QtQuick 1.1

                          Rectangle{

                          width:400
                          height:width
                          property real ropacity:0
                          
                          XmlListModel {
                              id: xmlModel
                          
                              source:"example_grouping.xml"
                          
                              query: "/rss/channel/item"
                              XmlRole { name: "id"; query: "id/string()" }
                              XmlRole { name: "title"; query: "title/string()" }
                              XmlRole { name: "pubDate"; query: "pubDate/string()" }
                              XmlRole { name: "param"; query: "param/string()" }
                              //onStatusChanged: if (status === XmlListModel.Ready) { console.log("XML elements read: ", count); fillListModel(); sortModel(); }
                          }
                          
                          Component {
                              id: sectionHeading
                              Rectangle {
                                  id:rect1
                                  width: 50
                                  height:18
                                  color: "lightgrey"
                          
                                  Text {
                                      text: section
                                      font.bold: true
                                  }
                              }
                          }
                          
                          Component {
                              id: mainDelegate
                          
                              Item {
                                  id: shortview
                                  property real detailsOpacity : 0
                                  width: 100
                                  height: 29
                          
                                   state : index==idLV.currentIndex ? 'details' : ''
                          
                                  states: [
                                      State {
                                          name: ""
                                          PropertyChanges { target: shortview;  height:29;}
                                          PropertyChanges { target: tert;  color:"black" }
                                      },
                                      State {
                                          name: "details" ;
                                          PropertyChanges {target: shortview ; height:50; }
                                          PropertyChanges {target: tert ; color:"pink" }
                                      }
                                  ]
                          
                                  Text {
                                      id:tert
                                      text:param
                                      color : "black"
                                  }
                                  MouseArea {
                                      id:marea
                                      anchors.fill:parent
                                      onClicked: idLV.currentIndex = index
                                  }
                              }
                          }
                          
                          ListView{
                              id:idLV
                          
                              model:xmlModel
                              width: 180; height: 300
                              delegate:  mainDelegate
                              section.property: "param"
                              section.criteria: ViewSection.FullString
                              section.delegate: sectionHeading
                          }
                          

                          }@

                          dmcr

                          1 Reply Last reply
                          0
                          • R Offline
                            R Offline
                            ReshmaS
                            wrote on last edited by
                            #16

                            Thanks mate :).. Appreciated!

                            Reshma

                            1 Reply Last reply
                            0
                            • R Offline
                              R Offline
                              ReshmaS
                              wrote on last edited by
                              #17

                              @dmcr:

                              The first item is always on 'Details' mode.
                              I have a close button on clikcing it goes back to the old state, when I click that I am unable to access the list.
                              Chk this if u have some time. Its the code which am working on.
                              http://www.2shared.com/file/d0BduoTK/xml.html

                              "chk this":http://www.2shared.com/file/d0BduoTK/xml.html

                              Thanks

                              Reshma

                              1 Reply Last reply
                              0
                              • D Offline
                                D Offline
                                dmcr
                                wrote on last edited by
                                #18

                                In your code there is still shortview.state='shortview', but this state is not defined.
                                You had to study the documentaion a little.

                                dmcr

                                1 Reply Last reply
                                0
                                • R Offline
                                  R Offline
                                  ReshmaS
                                  wrote on last edited by
                                  #19

                                  I read the documentation it did not work and hence I reverted to the existing code. I will try in another method. in that case the first item is always on the detailed state

                                  Reshma

                                  1 Reply Last reply
                                  0
                                  • M Offline
                                    M Offline
                                    Macro
                                    wrote on last edited by
                                    #20

                                    -Please edit you Question and add [Solved] infront of it, if you got the answer.-

                                    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