Я создал элемент в QT QML, который содержит элемент MouseArea.
Вот код,
import QtQuick 1.0
Rectangle {
id: base
width: 240
height: 320
x:0; y:0
color: "#323138"
/////////////////////// MAIN FOCUSSCOPE //////////////////////
FocusScope {
id: mainfocus
height: base.height; width: base.width
focus: true
/////////////////////// MAIN GRID ///////////////////////////
GridView {
id: maingrid
width: base.width-10; height: base.height-titlebar.height-10
x: 5; y: titlebar.height+5;
cellHeight: maingrid.height/3; cellWidth: maingrid.width/3-1
Component {
id: myicon
Rectangle {
id: wrapper
height: maingrid.cellHeight-10; width: maingrid.cellWidth-10
radius: 8; smooth: true
color: GridView.isCurrentItem ? "#c0d0c0" : "transparent"
focus: true
MouseArea {
id: clickable
anchors.fill: wrapper
hoverEnabled: true
//onClicked: func()
}
Image {
id: iconpic
source: "./ui6.svg"
anchors.centerIn: wrapper
}
Text {
id: iconname
color: wrapper.GridView.isCurrentItem ? "black" : "#c8dbc8"
anchors.top: iconpic.bottom; anchors.horizontalCenter: iconpic.horizontalCenter
text: name
}
}
}
model: 4
delegate: myicon
focus: true
}
}
//////////////////////// TITLEBAR ///////////////////////
Rectangle {
id: titlebar
x:base.x
y:base.y
height: 25; width: base.width
color : "#356f47"
Text {
color: "#fdfdfd"
anchors.centerIn: titlebar
text: "title"
}
}
}
Я хочу создать сетку из таких Предметов, чтобы она давала мне сетку из созданных мной пользовательских элементов, которые можно создавать по клику, которые я могу использовать для различных функций.
Используя элемент GridView, я смог создать такую сетку, в которой в качестве шаблона использовалось количество моих пользовательских элементов.
Проблема в том, что когда я щелкаю по любому из этих элементов, он выполняет одну функцию, поскольку в моем элементе был только один элемент MouseArea. Я могу обнаружить щелчок по элементу, но не могу однозначно определить, по какому элементу был выполнен щелчок. Как мне этого добиться?
Конечно, я могу ошибаться, поэтому приветствуются и другие предложения.
Спасибо