2

Can anyone suggest how can we use multiple delegates and multiple models in same PathView in same QML?

My requirement is like when I double click on rectangle (id: myWin) I will get QDialog window (InterfacageQML.mouseClick()).

It appears only when I double click on rectangle (id: rectImage).

Here is the MainForm.qml:

import QtQuick 2.6
import QtQuick.Controls 2.0 as QQC2
import Interfacage 1.0

Rectangle {
    id: big
    width: 800
    height: 800
    color: "white"

    Image {
        source: "pics/Resources/background_resize.jpg" //background

        ListModel {
            id: appModel2
            ListElement {
                icon : "pics/Resources/more.png"
            }
        } // ListModel2

        Component {
            id: appDelegate2
            Item {
                width: 100
                height:100
                scale: PathView.iconScale2
                anchors.bottom: parent.bottom
                anchors.right: parent.right

                Rectangle {
                    width:130; height: 80
                    id: myWin
                    color: "transparent"
                    anchors.bottom: parent.bottom
                    anchors.right: parent.right
                    Image {
                        id: image1
                        y: 30
                        anchors.centerIn: parent
                        anchors.bottom: parent.bottom
                        anchors.right: parent.right
                        source: icon

                        MouseArea {
                            anchors.fill: parent                                
                            onDoubleClicked: 
                                InterfacageQML.mouseClick()
                            }                                
                        } // MouseArea
                    } // image1                       
                } // myWin
            } // Item
        } // appDelegate2

        PathView {
            id: view2
            anchors.fill: parent
            highlight: appHighlight
            preferredHighlightBegin: 0.5
            preferredHighlightEnd: 0.5
            focus: true
            model: appModel2
            delegate: appDelegate2
            path: Path {
                startX: 700
                startY: 200
                PathAttribute {
                    name: "iconScale2"
                    value: 0.8
                }
                PathQuad {
                    x: 1620
                    y: 310
                    controlX: 700
                    controlY: 310
                }
            } // Path
        } // PathView

        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ListModel 
            id: appModel                
            ListElement {
                name: "CONTROLEUR"
                icon: "pics/Resources/user.png"
            }

            ListElement {                    
                name: "CONTROLEUR QUALITE"
                icon: "pics/Resources/user.png"
            }
            ListElement {                    
                name: "ADMINISTRATEUR"
                icon: "pics/Resources/user.png"
            }
            ListElement {                    
                name: "CREATEUR"
                icon: "pics/Resources/user.png"
            }
        } // ListModel1

        Component {
            id: appDelegate                
            Item {
                width: 100
                height:100
                scale: PathView.iconScale                   

                Rectangle{
                    id: rectImage
                    width: 400
                    height: 500
                    color: "lightsteelblue"
                    //anchors.bottom: myIcon.background
                    anchors.horizontalCenter: parent.horizontalCenter

                    Image {
                        id: myIcon
                        y: 20
                        //anchors.centerIn: parent
                        anchors.horizontalCenter: parent.horizontalCenter
                        source: icon
                    } // Image

                    Text {
                        anchors {
                            bottom: parent.bottom
                            horizontalCenter: parent.horizontalCenter
                            centerIn: parent.centerIn   
                        }                            
                        text: name
                        color: "white"
                        font.pointSize: 26
                    } // Text

                    MouseArea {
                        anchors.fill: parent
                        onClicked: {
                            view.currentIndex = index
                        }
                        onDoubleClicked: {
                            InterfacageQML.mouseClick()
                        }
                    } // MouseArea

                } // Rectangle
            } // Item
        } // Component

        PathView {
            id: view
            anchors.fill: parent
            highlight: appHighlight
            preferredHighlightBegin: 0.5
            preferredHighlightEnd: 0.5
            focus: true
            model: appModel
            delegate: appDelegate
            path: Path {
                startX: 500
                startY: 310
                PathAttribute {
                    name: "iconScale"
                    value: 0.8
                }

                PathQuad {
                    x: 1620
                    y: 310
                    controlX: 700
                    controlY: 310
                }

                PathAttribute {
                    name: "iconScale"
                    value: 0.8
                }

                PathQuad {
                    x: 488
                    y: 310
                    controlX: 10
                    controlY: 310
                }

                PathAttribute {
                    name: "iconScale"
                    value: 0.8
                }
            } // Path
        } // PathView
    } // background Image
} // Rectangle
NG_
  • 6,895
  • 7
  • 45
  • 67
oumayma
  • 21
  • 4

0 Answers0