我目前正在评估MATLAB中的GUI,并想知道如何在启动时最大化GUI窗口,而无需用户交互。我正在使用的功能在下文中说明,如果在按下按钮时调用它可以正常工作,但在图中的OpeningFcn中调用它将无济于事。
http://www.mathworks.com/matlabcentral/fileexchange/25471-maximize
在某个启动部分放置函数调用的任何帮助,这是在绘制GUI窗口后执行的?我在MATLAB GUI中搜索了与启动代码相关的解决方案,但迄今为止没有结果。 在此先感谢您的努力。
答案 0 :(得分:2)
由于许多人似乎对此感兴趣并且仍然没有公开解决方案,我将描述我的方法:
在% Initialize a timer, which executes its callback once after one second
timer1 = timer('Period', 1, 'TasksToExecute', 1, ...
'ExecutionMode', 'fixedRate', ...
'StartDelay', 1);
% Set the callback function and declare GUI handle as parameter
timer1.TimerFcn = {@timer1_Callback, findobj('name', 'YourGUIName')};
timer1.StopFcn = @timer1_StopFcn;
start(timer1);
函数中,添加以下行:
timer1_Callback
声明timer1_StopFcn
和%% timer1_Callback
% --- Executes after each timer event of timer1.
function timer1_Callback(obj, eventdata, handle)
% Maximize the GUI window
maximize(handle);
%% timer1_StopFcn
% --- Executes after timer stop event of timer1.
function timer1_StopFcn(obj, eventdata)
% Delete the timer object
delete(obj);
函数:
maximize
声明function maximize(hFig)
%MAXIMIZE: function which maximizes the figure withe the input handle
% Through integrated Java functionality, the input figure gets maximized
% depending on the current screen size.
if nargin < 1
hFig = gcf; % default: current figure
end
drawnow % required to avoid Java errors
jFig = get(handle(hFig), 'JavaFrame');
jFig.setMaximized(true);
end
函数:
maximize
AND ACTFINISH BETWEEN '01-JUN-2015' AND '30-JUN-2015'
函数的来源:
http://www.mathworks.com/matlabcentral/fileexchange/25471-maximize