|
|||||||
Как задать обработчик события клика мыши по определенному элементу или по определенной экранной области
Время создания: 05.01.2018 16:58
Текстовые метки: qml, действие, обработчик, событие, клик, область, прямоугольник
Раздел: Компьютер - Программирование - Язык C++ (Си++) - Библиотека Qt - QML
Запись: xintrea/mytetra_syncro/master/base/1515160698h88hyucurr/text.html на raw.github.com
|
|||||||
|
|||||||
Пусть есть некий элемент, например прямоугольник, при клике на который нужно выполнить какое-нибудь дествие. Как вызвать это действие? Классический путь следующий. Имеем некий прямоугольник: Rectangle { width: 100; height: 100; color: "blue" } Вовнутрь него нужно поместить невидимую область типа MouseArea, которая будет реагировать на клик мышкой. Делается это так: Rectangle { width: 100; height: 100; color: "blue"
MouseArea { anchors.fill: parent } } Данная область занимает все пространство прямоугольника, благодаря установке свойства anchors.fill: parent. Обработка клика по области MouseArea происходит с помощью свойства onClicked, внутри которого задается JavaScript код, который будет выполнен при клике на данную область: Rectangle { width: 100; height: 100; color: "blue"
MouseArea { anchors.fill: parent onClicked: { parent.x+=10; parent.y+=15; } } } Здесь для области MouseArea прямоугольник является родителем - parent, поэтому установка свойства parent.x+=10 сдвинет прямоугольник на 10 пикселей вправо и на 15 пикселей вниз. Следует понимать, что после того как прямоугольник сдвинулся, область, им занимаемая, тоже переместилась, и область MouseArea тоже переместилась. И в следующий раз клик будет обрабатываться только на области, занимаемой прямоугольником в текущий момент времени. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|