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中央文件兑换。检索到.
更好说:有谁知道是否可以使用此或类似的hack来拥有多个编辑器Windows,每个编辑器选项卡?
有人知道这个或类似的hack可以用来有多个编辑器窗口,每个窗口有多个编辑器选项卡吗?
我刚上传的最新版本包括以下问题的修复程序(谢谢!)。新版本与所有MATLAB释放兼容到R2020B兼容。
此代码与一些更改效果很好......显然,“getGroupContainer”方法没有得到组容器。因此,我用“addgroup”替换了这个“getGroupContainer”方法。在我这样做之后,193号线读:
hContainer = desktop.addGroup(集团);
然后,我注释掉了这一行(第196行):
set(hcontainer,'userdata',group);
您不需要设置userdata来保存组名,因为您将看到组名已经保存在hContainer中。
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 - 在此提交中没有完成部署应用程序的特殊处理。如果它有效,那么很棒;如果没有,您需要(1)找到另一种解决方案,或(2)调整提交以满足您的需求,或(3)雇用我的时间来调查问题,看看我是否可以解决它(某种东西)不放心)。
嗨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)。
这可以用于部署的应用程序吗?
这就是我要找的东西!
功能请求:
1)添加功能以关闭这些停靠组Windows组!('关闭所有'没有做诀窍,因为小组容器仍然存在)
2)将分组的窗口保留填充MATLAB的桌面菜单列表(沿着文件下降|编辑|调试| ......)。它似乎包括我创建的每个分组窗口:(
非常好!
Yair Altman的另一个有用的函数。
在r2009a上,javaframe仍然有效,我想当它不起作用时,会有一个替代品(我相信Y. Altman甚至会发现它也是未记录的;)
很有用!
但是图形JavaFrame属性将在R2008a之后被废弃。希望有个办法。
伟大的功能。