Работа с MultiPointTouchArea (drag n drop + zoom)
Привет , подскажите кто-нибудь , как сделать драг н дроп , не нарушая при этом логику работы зума?
- import QtQuick 2.6
- import QtGraphicalEffects 1.0
- Page {
- id:win
- property string filepath
- // width:parent.width * 0.5
- // height:parent.height * 0.5
- MultiPointTouchArea {
- id: multiPoint
- anchors.fill: parent
- maximumTouchPoints : 2
- minimumTouchPoints : 1
- touchPoints: [
- TouchPoint { id: point1 },
- TouchPoint { id: point2 }
- ]
- property real factor: 1
- property bool isReleased: false // ignore the TouchUpdate after released
- onTouchUpdated: {
- console.log("touch upd")
- if(isReleased){
- isReleased = false
- return
- }
- if(point1.x != 0 && point2.x != 0){
- var s = Math.sqrt(Math.pow(point1.x - point2.x, 2) + Math.pow(point1.y - point2.y, 2)) /
- Math.sqrt(Math.pow(point1.startX - point2.startX, 2) + Math.pow(point1.startY - point2.startY, 2))
- rect.scale = s * factor
- } else {
- rect.beginDrag = Qt.point(rect.x, rect.y) ?????????
- }
- }
- onReleased: {
- console.log("realesed upd")
- multiPoint.factor = rect.scale
- isReleased = true
- }
- Rectangle {
- id: rect
- width: Screen.width
- height: Screen.height
- z: mouseArea.drag.active || mouseArea.pressed ? 2 : 1
- x: 0 //Math.random() * (win.width / 2 - 100)
- y: 0
- property point beginDrag
- color : "transparent"
- border { width:2; color: "transparent" }
- radius: 5
- Drag.active: mouseArea.drag.active
- Image {
- id: image
- width: rect.width
- height: rect.height
- anchors.centerIn: parent
- fillMode: Image.PreserveAspectFit
- source: filepath
- }
- // MouseArea {
- // id: mouseArea
- // anchors.fill: image
- // drag.target: rect
- // enabled:multiPoint.isReleased
- // visible: multiPoint.isReleased
- // onPressed: {
- // console.log("mouse pressed + state: " + isReleased)
- // rect.beginDrag = Qt.point(rect.x, rect.y)
- // }
- // }
- }
- }
- }
2
252
Do you like it? Share on social networks!
- Last comments
- AKApril 1, 2025, 11:41 a.m.Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VPMarch 9, 2025, 4:14 p.m.Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМNov. 22, 2024, 9:51 p.m.Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Now discuss on the forum
- fFeb. 15, 2025, 1:46 p.m.Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
- Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.