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
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
To copy to clipboard, switch view to plain text mode
Bookmarks