恕我直言,这几乎取决于个人guis的实施.
如果所有GUI都使用了guidata和父图形的属性(组合后只有一个),那么如果不重新处理所有GUI,这很快就会变得不可能或至少变得混乱.
另一种可能性是将数字停靠在一个桌面组中.
这样,每个GUI都将保持隔离状态,并且不需要对其实现进行更改.
参见例如
有关如何将数字停靠到一个桌面组的示例.
编辑:
一个快速而又肮脏的例子:
function dockTest()
GROUPNAME = 'MyGUIs';
desktop = com.mathworks.mde.desk.MLDesktop.getInstance();
group = desktop.addGroup(GROUPNAME);
desktop.showGroup(GROUPNAME,1);
% create some dummy-figures:
for i=1:2
figureList(i) = figure('name', ['GUI ', num2str(i)],...
'numbertitle','off');
end
% dock figures in list:
for i=1:numel(figureList)
f = figureList(i);
jf = get(handle(f), 'JavaFrame');
jf.setGroupName(GROUPNAME);
set(f, 'WindowStyle', 'docked');
end
end
你应该能够简单地使figureList(可能还有GROUPNAME)成为这个函数的一个参数,因此将你想要停靠的所有数字句柄传递给一个组.
你不需要一个工具箱.
我想我应该注意,这都是基于未记录的功能.我经常通过在所涉及的各个java对象上大量使用methodsview来解决这类问题.