拜托,我有这段代码涉及保存gui状态(使用Doug Hull的)方法。 问题是脚本编译正常,但只有弹出并在运行时使用deploytool消失。我正在使用Matlab R2012b。
function savestate3
S.fh=figure('NumberTitle','off',...
'Visible','on','Position',[360 400 450 285],...
'closerequestfcn',{@fh_crfcn});
S.tg(1)=uicontrol(S.fh,'Style','toggle','String','Semester',...
'pos',[15 250 100 25],'val',0,'visible','on');
S.tg(2)=uicontrol(S.fh,'Style','toggle','String','Details',...
'pos',[135 250 100 25],'val',0,'visible','on');
S.ed(1)=uicontrol(S.fh,'Style','edit','String','Edit Text',...
'pos',[250 70 100 25],'visible','off');
S.lb(1)=uicontrol(S.fh,'Style','listbox','String',{'One','Two','Three'},...
'pos',[100 170 100 70],'visible','off');
S.cb(1)=uicontrol(S.fh,'Style','checkbox','Value',1,'String','Check Me',...
'pos',[250 170 100 25],'visible','off');
set(S.tg(:),'callback',{@tg_call,S})
guidata(S.fh,S)
restoreState(S);
function saveState(handles)
state2.editstr=get(S.ed(1),'String');
state2.listval=get(S.lb(1),'value');
state2.checkval=get(S.cb(1),'value');
save state1.mat state2
end
function restoreState(handles)
load 'state1.mat' 'state2'
set(S.ed(1),'string',state2.editstr,'FontSize',12,'FontWeight','bold');
set(S.lb(1),'value',state2.listval);
set(S.cb(1),'value',state2.checkval);
end
function fh_crfcn(varargin)
saveState(S)
delete(S.fh)
end
%TOGGLE OPERATIONS
function []=tg_call(varargin)
%Toggle Operations
[h,S]=varargin{[1,3]};
if get(h,'val')==0
set(h,'val',1)
end
switch h
case S.tg(1)
set(S.tg(2),'val',0)
set(S.ed(1),'visible','on')
set(S.lb(1),'visible','on')
set(S.cb(1),'visible','off')
saveState(S)
case S.tg(2)
set(S.tg(1),'val',0)
set(S.cb(1),'visible','on')
set(S.ed(1),'visible','off')
set(S.lb(1),'visible','off')
saveState(S)
end
end
end
答案 0 :(得分:0)
好吧,我想到了这一点,但仍然不知道这是否是“完美”的事情。
编译完成后,我将mat文件state1.mat放在distr / src文件夹中,然后就可以了。