恕我直言,这在很大程度上取决于个人 guis 的实施。如果所有 GUI 都使用guidata
父图形的 和 属性(组合后只有一个),那么如果不重新设计所有 GUI,这很快就会变得不可能或至少是混乱的。
另一种可能性是将数字停靠在一个桌面组中。这样,每个单独的 GUI 都将保持隔离,并且不需要更改其实现。参见例如
http://www.mathworks.nl/matlabcentral/fileexchange/18106-manage-and-dock-figures-into-group
有关如何将数字停靠到一个桌面组的示例。
编辑:
一个快速而肮脏的例子:
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
也可以)成为此函数的参数,从而将您想要停靠到组中的所有图形句柄传递给它。
您不需要为此提供工具箱。
我想我应该注意到这一切都是基于未记录的功能。methodsview
我通常通过大量使用所涉及的单个 java 对象来处理这类事情。