LINUX.ORG.RU

Qt QML программирование жестов

 , , ,


0

2

Доброго времени суток! Хочется написать небольшую программу для своего ведроида. В связи с этим встал вопрос - использую Qt Quick и мне нужна поддержка жестов.

Нагуглил пока QGestures, но все примеры были для стандартного Qt-шного гуя, Как их использовать в QML - неясно

Нагуглил PinchArea - насколько я понимаю, это элемент, отлавливающий манипуляции с двумя пальцами, а мне нужны пока жесты с одним пальцем, вроде провести слева направо и т.п.

Может есть смысл тыкать в MouseArea и пытаться использовать его?

Буду очень признателен, если тыкнете носом, куда копать. Заранее спасибо.

Есть сторонняя реализация, лежит в дистрибутиве с Qt:

%QT_ROOT%/imports/Qt/labs/gestures

Насколько я знаю, по умолчанию этот плагин не включен. Я одно время интересовался, как его включить, потом реализовал через Drag&Drop. Может, вам больше повезёт.

Adonai ★★★ ()
Ответ на: комментарий от gwyllum

Код удаления элементов списка перетаскиванием.

Item {
      anchors.left: parent.left
      anchors.right: parent.right
      opacity: (parent.width - Math.abs(x)) / parent.width

      MouseArea {
            // Открепляем цель от граней
            onPressed: {
                parent.anchors.left = undefined
                parent.anchors.right = undefined
            }
            onReleased: {
                if(parent.opacity < 0.5) // убиваем если перетащили дальше чем наполовину
                    ItemHandler.removeItem(index)
                else { // возвращаем элемент на место
                    parent.anchors.left = parent.parent.left
                    parent.anchors.right = parent.parent.right
                }
            }

            anchors.fill: parent
            drag.target: parent
            drag.axis: Drag.XAxis
        }
}
Adonai ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.