В этом примере показано, как группа объектов может передать клик мыши родительскому элементу, который работает со всеми объектами в группе.
Предположим, что вы хотите, чтобы один клик мыши на любом представителе группы объектов выполнял одну кнопку вниз коллбэка затрагивая все объекты в группе.
Задайте графические объекты, которые будут добавлены в группу.
Назначение hggroup
объект как родительский элемент графических объектов.
Задайте функцию, которая будет выполняться при клике по любому из объектов. Присвойте его указателю на функцию hggroup
ButtonDownFcn
объекта свойство.
Установите HitTest
свойство каждого объекта в группе, для off
так, чтобы клик мыши был передан родительскому элементу объекта.
В этом примере используется следующая иерархия объектов.
Создайте файл с двумя функциями:
pickPatch
- Основная функция, которая создает графические объекты.
groupCB
- Локальная функция для hggroup
коллбэк.
The pickPatch
функция создает три объекта закрашенной фигуры, и родительские элементы их для hggroup
объект. Установка HitTest
свойство каждого закрашенной фигуры направляет клики мыши к родительскому элементу.
function pickPatch figure x = [0 1 2]; y = [0 1 0]; hGroup = hggroup('ButtonDownFcn',@groupCB); patch(x,y,'b',... 'Parent',hGroup,... 'HitTest','off') patch(x+2,y,'b',... 'Parent',hGroup,... 'HitTest','off') patch(x+3,y,'b',... 'Parent',hGroup,... 'HitTest','off') end
The groupCB
коллбэк действует со всеми объектами, содержащимися в hggroup
. The groupCB
функция использует исходный аргумент коллбэка, переданный в коллбэк (src
) для получения указателей на объекты закрашенной фигуры.
Использование исходного аргумента коллбэка (который является указателем на hggroup
объект) устраняет необходимость создания глобальных данных или передачи дополнительных аргументов в коллбэк.
Щелчок левой кнопкой мыши по любой закрашенной фигуре изменяет цвет лица всей трёх закрашенных фигур на случайное значение цвета RGB.
function groupCB(src,~) s = src.Children; set(s,'FaceColor',rand(1,3)) end
Для получения дополнительной информации о функциях обратного вызова смотрите Коллбэк Definition