У меня есть объект QML, называемый Vertex, который создается динамически в ретрансляторе на холсте. По сути, это прямоугольник с некоторыми функциями событий на нем. На Doubletap я хочу, чтобы обработчик Doubletap назвал функцию в холсте. Но происходит то, что функция, кажется, называется дважды - один раз с правильными параметрами и один раз с некоторыми отрывочными параметрами.
Код: Выделить всё
TapHandler {
onTapped: {
selected = !selected;
}
onDoubleTapped: {
console.log("Double click on "+tag);
parent.parent.interceptDoubleClick(parent);
}
}
Вот код, который вызывается в
main.qml .
Код: Выделить всё
function interceptDoubleClick(myVert) {
console.log("intercepted! Passed "+myVert.tag);
console.log("myVert is "+myVert);
}
< /code>
Вот выход. < /p>
qml: Double click on v2
qml: intercepted! Passed v2
qml: myVert is Vertex_QMLTYPE_1(0x600001e9c0e0)
qml: Double click on
qml: intercepted! Passed
qml: myVert is Vertex_QMLTYPE_1(0x600001ebcc40)
Обратите внимание, что в первый раз, он правильно проходит, и в файле
main.qml я могу запросить myvert.tag и получить правильное значение из тега. Но затем он снова стреляет, и, похоже, он проходит еще один объект вершины, но он отличается и ничего не хранится в myvert.tag.>
Подробнее здесь:
https://stackoverflow.com/questions/795 ... ring-twice