Как максимизировать рисунок / окно MATLAB GUI при запуске?

В настоящее время я оцениваю GUI в MATLAB, и мне было интересно, как максимально увеличить окно GUI при запуске без необходимости взаимодействия с пользователем. Функция, которую я использую, описана ниже и прекрасно работает, если она вызывается нажатием кнопки, но вызов ее в Открытие Fcn фигуры не поможет.

http://www.mathworks.com/matlabcentral/fileexchange/25471-maximize

Любая помощь в каком-либо разделе запуска для размещения вызова функции, которая выполняется после того, как окно GUI было нарисовано? Я искал решения, связанные с кодом запуска, в MATLAB GUI, но результатов пока нет. Заранее спасибо за ваши усилия.

1 ответ

Решение

Поскольку многие люди заинтересованы в этом, и публичного решения пока нет, я опишу свой подход:

  1. в YourGUIName_OpeningFcn(hObject, eventdata, handles, varargin) добавьте следующие строки:

    % 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);
    
  2. Объявить 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);
    
  3. Объявить 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 функция:

http://www.mathworks.com/matlabcentral/fileexchange/25471-maximize

Другие вопросы по тегам