MyTetra Share
Делитесь знаниями!
Как задать обработчик события клика мыши по определенному элементу или по определенной экранной области
Время создания: 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 тоже переместилась. И в следующий раз клик будет обрабатываться только на области, занимаемой прямоугольником в текущий момент времени.


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования