Я разрабатываю программу, в которой пользователь комментирует некоторые пиксели на изображении, и я запустю алгоритм обработки изображений на основе отмеченных пикселей.
![Example](https://i.imgur.com/xA892Mv.png)
Я хочучтобы получить координаты аннотированных пикселей и к какой группе они принадлежат (синий, желтый или любой другой цветной маркер, добавленный пользователем), он должен быть устойчивым для масштабирования (масштабирования) изображения и иметь возможность удалять выбранный маркер (что-то, что QML Canvas не разрешает).
Я разрабатывал его с QGraphicsView
из QtWidgets
, но в итоге я перезапустил приложение с QML, потому что мобильная версия была бы хороша, но я неуверен, что это был хороший выбор.
В настоящее время у меня есть это (упрощенная версия)
Item {
id: main_area
// ...
Image {
id: image
anchors.fill: parent
// ...
}
Canvas { // I think this needs to be replaced with my c++ class
id: scribble_area
anchors.fill: image
property real last_x
property real last_y
onPaint: {
var ctx = getContext("2d")
ctx.lineCap = "round"
ctx.lineWidth = 10
ctx.strokeStyle = color_tools.paintColor // it's in another file
ctx.beginPath()
ctx.moveTo(last_x, last_y)
last_x = area.mouseX
last_y = area.mouseY
ctx.lineTo(last_x, last_y)
ctx.stroke()
}
MouseArea {
id: area
anchors.fill: parent
acceptedButtons: Qt.LeftButton
onPressed: {
scribble_area.last_x = mouseX
scribble_area.last_y = mouseY
}
onPositionChanged: scribble_area.requestPaint()
}
}
}
Я не уверен, что наложение id: image
на id: scribble_area
являетсяправильный способ делать то, что я хочу, с QGraphicsView все присутствовало в одном и том же классе.
Какой класс Qt мне следует использовать из QtQuick для получения результатов, подобных QGraphicsView
?
Любые рекомендацииПриветствую структуру моих предметов QML / Qt.