copyobj

Скопируйте графические объекты и их потомков

Синтаксис

new_handle = copyobj(h,p)
copyobj(___,'legacy')

Описание

copyobj создает копии графических объектов и присваивает объекты новому родительскому элементу.

Новый родительский элемент должен подходить для скопированного объекта (например, можно скопировать оси только, чтобы фигурировать или uipanel). copyobj дочерние элементы копий также.

new_handle = copyobj(h,p) копии один или несколько графических объектов идентифицированы h и возвращает указатель нового объекта или массив новых объектов. Новые графические объекты являются дочерними элементами графических объектов, заданных p.

copyobj(___,'legacy') копии возражают свойствам коллбэка и объектным данным приложения. Это поведение сопоставимо с версиями copyobj перед MATLAB® релиз R2014b.

Что Не Копируется

copyobj не копирует свойства или объекты, которые зависят от их исходного контекста, чтобы действовать правильно. Объекты с контекстными меню по умолчанию (такими как легенды и шкалы палитры) создают новые контекстные меню для нового объекта. Фигуры создают новые панели инструментов и меню для новой фигуры.

copyobj не копирует:

  • Свойства коллбэка (кроме тех случаев, когда использование legacy опция).

  • Данные приложения сопоставили с объектом (кроме тех случаев, когда использование legacy опция).

  • Контекстное меню легенд, шкал палитры или других объектов, которые задают контекстные меню по умолчанию.

  • Панель инструментов фигуры по умолчанию и меню.

  • Объекты осей, используемые с yyaxis функция.

  • Interactions свойство объекта осей.

  • DataTipTemplate свойство для объектов, которые имеют это свойство, такое как Lineрассеяние, и Surface объекты.

  • Вы не можете скопировать тот же объект несколько раз в тот же родительский элемент в одном вызове copyobj.

MATLAB изменяет Parent свойство к новому родительскому элементу и присвоениям новые объекты новый указатель.

Примеры

Скопируйте поверхность в новые оси, который находится на различном рисунке.

h = surf(peaks);
colormap hsv

Создайте целевую фигуру и оси:

fig = figure;
ax = axes;

Скопируйте поверхность в новые оси и установите свойства, которые не являются поверхностными свойствами:

new_handle = copyobj(h,ax);
colormap(fig,hsv)
view(ax,3)
grid(ax,'on')

Обратите внимание на то, что, в то время как поверхность копируется, colormapПредставление, и grid не копируются.

Советы

h и p могут быть скаляры или векторы. Когда и векторы, они должны быть той же длиной, и выходным аргументом, new_handle, вектор из той же длины. В этом случае, new_handle(i) копия h(i) с его Parent набор свойств к p(i).

Когда h скаляр и p вектор, h копируется однажды в каждый из родительских элементов в p. Каждый new_handle(i) копия h с его Parent набор свойств к p(i), и length(new_handle) равняется length(p).

Когда h вектор и p скаляр, каждый new_handle(i) копия h(i) с его Parent набор свойств к p. Длина new_handle равняется length(h).

Примечание

Необходимо скопировать связанные оси при копировании легенды или шкалы палитры.

При программировании пользовательского интерфейса не вызывать copyobj или textwrap (который вызывает copyobj) в CreateFcn. Действие копирования объекта uicontrol запускает CreateFcn неоднократно, который повышает ряд сообщений об ошибке после превышения предела рекурсии.

Смотрите также

| | | | |

Представлено до R2006a