Main Content

copyobj

复制图形对象及其后代

语法

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

说明

copyobj 创建图形对象的副本并将这些对象分配给新的父对象。

新父级必须适用于复制的对象(例如,只能将坐标区复制到图窗或 uipanel)。copyobj 还复制子级。

new_handle = copyobj(h,p) 复制 h 标识的一个或多个图形对象并返回新对象句柄或新对象数组。新图形对象是 p 指定的图形对象的子级。

copyobj(___,'legacy') 复制对象回调属性和对象应用程序数据。此行为与 R2014b 版的 MATLAB® 之前的 copyobj 一致。

不复制的内容

copyobj 并不复制依赖其原始上下文才能正常操作的属性或对象。包含默认上下文菜单(如图例和颜色栏)的对象为新对象创建新上下文菜单。图窗为新图窗创建新工具栏和菜单。

copyobj复制:

  • 回调属性(使用 legacy 选项时例外)。

  • 与对象关联的应用程序数据(使用 legacy 选项时例外)。

  • 图例、颜色栏或定义默认上下文菜单的其他对象的上下文菜单。

  • 默认图窗工具栏和菜单。

  • yyaxis 函数结合使用的坐标区对象。

  • 坐标区对象的 Interactions 属性。

  • 对象的 DataTipTemplate 属性,LineScatterSurface 等对象具有此属性。

  • 不能将同一对象多次复制到对 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')

请注意,在复制该曲面时,不会复制 colormapviewgrid 属性。

提示

hp 可为标量或向量。当二者为向量时,它们的长度必须相同,且输出参数 new_handle 是同一长度的向量。在此情况下,new_handle(i)h(i) 副本,其 Parent 属性设置为 p(i)

h 是标量且 p 是向量时,h 复制到 p 中的每个父级一次。每个 new_handle(i) 是其 Parent 属性设置为 p(i)h 的副本,并且 length(new_handle) 等于 length(p)

如果 h 是向量且 p 是标量,则每个 new_handle(i) 都是其 Parent 属性设置为 ph(i) 的副本。new_handle 的长度等于 length(h)

注意

必须在复制图例或颜色栏时复制关联的坐标区。

进行 UI 编程时,请勿在 CreateFcn 内部调用 copyobjtextwrap(该函数又将调用 copyobj)。复制 uicontrol 对象的操作会重复触发 CreateFcn,在超过递归限制性之后将会产生一系列错误消息。

版本历史记录

在 R2006a 之前推出

另请参阅

| | | | |