文件交换

图像缩略图

setFigDockGroup

版本1.5.0.0(66.3 KB) 实验后奥特曼
设置图形的对接组容器
5.0
7评级

5下载

更新2020年12月09日

视图版本历史

查看许可协议

setfigdockgroup设置图形(或数字列表)对接组容器,使默认的“数字”容器(例如,在“屏幕截图”中所示的“编辑器”组中的容器(例如,“编辑器”组,或者为任何新用户(例如)或任何新用户(例如,所述)(例如,对“编辑器”组)进行停靠数字- 义义组,甚至到另一个图形的按钮)。

句法:
hgroup = setfigdockgroup(hfig,group)
hButton = setFigDockGroup(hFig, hButton)

输入:
HFIG是一个可选的句柄或手柄列表。这些通常是图形处理,但不一定:含有的处理器的图形被自动推断和使用。如果未提供HFIG,则假定当前的图形句柄(GCF)。

组是组名称(例如,“编辑器”,“图”,“我的组”)或从上一个SetFigDockGroup函数调用返回的组句柄。

hButton是另一个图形上的uicontrol按钮的手柄。这个按钮通常会被标记为“卸载”或有一个卸载图标。注意,停靠图将被最小化到目标hButton -你将无法在目标图中看到停靠图的内容,只能通过按钮解除停靠。在未来的版本中,可能会添加到图形面板中。

输出:
返回的hgroupcontainer对象允许访问许多有用的属性和回调。键入“get(hgroupContainer)”以查看完整列表。请注意,如果组容器不可见,则HgroupContainer可能会返回空([])。

请参阅内在的扩展帮助。

警告:
这些代码严重依赖于没有文档记录和不受支持的Matlab功能。金宝app它工作在Matlab 7.4+,但使用您自己的风险!
此实用程序不适用于ui图形(使用ui函数或App Designer创建)——仅适用于遗留(基于java的)图形。

错误和建议:
请发送给Yair Altman (altmany at gmail dot com)

引用作为

Yair Altman(2021年)。setFigDockGroup(//www.tatmou.com/matlabcentral/fileexchange/1650-setfigdockgroup),Matlab中央文件兑换。检索到

评论和评级(21

Neurosock Hardcore BCIS.

更好说:有谁知道是否可以使用此或类似的hack来拥有多个编辑器Windows,每个编辑器选项卡?

Neurosock Hardcore BCIS.

有人知道这个或类似的hack可以用来有多个编辑器窗口,每个窗口有多个编辑器选项卡吗?

实验后奥特曼

我刚上传的最新版本包括以下问题的修复程序(谢谢!)。新版本与所有MATLAB释放兼容到R2020B兼容。

托马斯轻弹

此代码与一些更改效果很好......显然,“getGroupContainer”方法没有得到组容器。因此,我用“addgroup”替换了这个“getGroupContainer”方法。在我这样做之后,193号线读:
hContainer = desktop.addGroup(集团);
然后,我注释掉了这一行(第196行):
set(hcontainer,'userdata',group);
您不需要设置userdata来保存组名,因为您将看到组名已经保存在hContainer中。

Markus sause.

yair,

我花了点时间才回过神来。我现在很确信,这个数字对接在部署的应用程序中是无效的。我在第181行之后立即检查了hFig1的状态

集(hFig1 WindowStyle”,“停靠”);drawnow

仍然说'正常'而不是'停靠'。还尝试了几个更多的版本,以确保它没有松散的OTS掌握到要停靠的数字。没有成功。

Matlab官员还支持此行为:金宝app
https://de.mathwands.com/matlabcentral/answers/378640-compiled-application-can-t-dock-figures.

但在普通的Matlab环境中工作完美,因此5 *

Markus sause.

实验后奥特曼

Markus - 在此提交中没有完成部署应用程序的特殊处理。如果它有效,那么很棒;如果没有,您需要(1)找到另一种解决方案,或(2)调整提交以满足您的需求,或(3)雇用我的时间来调查问题,看看我是否可以解决它(某种东西)不放心)。

Markus sause.

嗨yair,
自2018B自2018B自2018年发布以来是否有任何新的黑客?对接似乎在MATLAB环境中正常工作,但使用编译版本(使用应用程序编译器)。虽然在编译期间,请勿在编译期间看到任何警告。
在Matlab中运行时也没有错误/警告。这个版本是否打算与已部署的应用程序一起工作?

谢谢,
马库斯

吉姆·霍本

嗨yair,

几件事。在2016b,我需要注释掉容器的userdata设置,类似于Ian的消息。我也有点困惑的用法,因为它似乎只是功能关联的对接组,而不是实际停靠图。注释掉设置oldStyle修复了这个问题(第182行?)这很好,可以通过可选输入来修复,但它似乎与文档相矛盾。

谢谢,
吉姆

伊恩菲利普斯

嗨yair,
如果我使用:set(0,'DefaultFigureWindowStyle','docked')

hfig1 =图('name','一个');
绘图(SIN(0:0.1:6.2));
hgroupcontainer = setfigdockgroup(hfig1,'myfiggroup');

我收到以下错误:
setfigdockgroup:使用set时出错
名称'userdata'不是类的类别的可访问属性
'com.mathworks.widgets.desk.dtdocumentContainer'。

setFigDockGroup错误(第196行)
set(hcontainer,'userdata',group);

test_setfigdockgroup中的错误(第14行)
hgroupcontainer = setfigdockgroup(hfig1,'myfiggroup');

如果我用:
设置(0,'defaultfigurewindowstyle','normal');

hfig1 =图('name','一个');
绘图(SIN(0:0.1:6.2));
hgroupcontainer = setfigdockgroup(hfig1,'myfiggroup');

一切都好吧。这是众所周知的问题吗?
我正在使用Matlab 2016a。

谢谢你的帮助。

实验后奥特曼

@Jochen - 如果组容器不可见,则HgroupContainer返回空([])。

克莱斯·尼农尔

亲爱的Yair,
谢谢你的所有努力。我成功地使用了其他提交的多个提交,但无法在8.6.0.267246(R2015B)上工作。

hfig = figure('name','一个');
hgroupcontainer = setfigdockgroup(hfig,'my app')

返回一个空的hGroupContainer,即[]。

非常感谢你的慷慨帮助。

托马斯。

R2014a版本错误。

Line192:Set(HContainer,'userData',组);

抛出错误:

对于类'com.mathworks.widgets.desk.DTDocumentContainer'的实例来说,名称'userdata'不是一个可访问的属性。

克莱斯·尼农尔

这个功能太棒了!

显然,码头组窗口记得它的最后布局(即它有多少瓷砖和他们位于哪里)。
是否有可能控制给定图形进入哪个贴图?

实验后奥特曼

是的,这个实用程序确实可以在部署的应用程序中使用。如果您需要关于对接或Matlab的咨询帮助,请离线联系我(altmany at gmail)。

乔纳森斯特

这可以用于部署的应用程序吗?

布莱恩B.

这就是我要找的东西!

功能请求:

1)添加功能以关闭这些停靠组Windows组!('关闭所有'没有做诀窍,因为小组容器仍然存在)

2)将分组的窗口保留填充MATLAB的桌面菜单列表(沿着文件下降|编辑|调试| ......)。它似乎包括我创建的每个分组窗口:(

Almog Shalom.

非常好!
Yair Altman的另一个有用的函数。
在r2009a上,javaframe仍然有效,我想当它不起作用时,会有一个替代品(我相信Y. Altman甚至会发现它也是未记录的;)

君阳

很有用!
但是图形JavaFrame属性将在R2008a之后被废弃。希望有个办法。

丹这样的

伟大的功能。

Matlab释放兼容性
使用R2007A创建
兼容任何释放
平台的兼容性
视窗 苹果系统 Linux

社区宝藏狩猎

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!