В этом примере показано, как группа объектов может передать клик мыши родительскому элементу, который работает со всеми объектами в группе.
Предположим, что вы хотите один клик мыши по любому члену группы объектов выполнить одну кнопку вниз коллбэк, влияющий на все объекты в группе.
Задайте графические объекты, которые будут добавлены к группе.
Присвойте hggroup
возразите как родительский элемент графических объектов.
Задайте функцию, чтобы выполниться, когда по любому из объектов кликнут. Присвойте его указатель на функцию hggroup
ButtonDownFcn
объекта свойство.
Установите HitTest
свойство каждого объекта в группе к off
так, чтобы клик мыши был передан родительскому элементу объекта.
Этот пример использует следующую иерархию объектов.
Создайте файл с двумя функциями:
pickPatch
— Основная функция, которая создает графические объекты.
groupCB
— Локальная функция для hggroup
'callback'.
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
groupCB
коллбэк работает со всеми объектами, содержавшимися в hggroup
. groupCB
функционируйте использует исходный аргумент коллбэка, переданный коллбэку (src
) получить указатели объектов закрашенной фигуры.
Используя исходный аргумент коллбэка (который является указателем на hggroup
объект), избавляет от необходимости создавать глобальные данные или передавать дополнительные аргументы коллбэку.
Щелчок левой кнопкой по любой закрашенной фигуре изменяет цвет поверхности всех трех закрашенных фигур к случайному значению цвета RGB.
function groupCB(src,~) s = src.Children; set(s,'FaceColor',rand(1,3)) end
Для получения дополнительной информации о функциях обратного вызова см. Определение Коллбэка