Среда GUIDE будет удалена в будущем релизе. После того, как GUIDE удален, существующие приложения GUIDE продолжат запускаться в MATLAB®, но они не будут доступны для редактирования в GUIDE.
Чтобы продолжить редактировать существующее приложение GUIDE, см. Стратегии Миграции GUIDE информации о том, как помочь обеспечить совместимость приложения с будущими релизами MATLAB. Чтобы создать новые приложения, используйте App Designer вместо этого.
Вводная функция является первым коллбэком в каждом файле кода GUIDE. Это выполняется непосредственно перед тем, как пользовательский интерфейс сделан видимым пользователю, но после того, как все компоненты были созданы, т.е. после CreateFcn
компонентов коллбэки, если таковые имеются, были запущены.
Можно использовать вводную функцию, чтобы выполнить задачи инициализации, прежде чем у пользователя будет доступ к пользовательскому интерфейсу. Например, можно использовать его, чтобы создать данные или считать данные из внешнего источника. MATLAB передает любые параметры командной строки вводной функции.
GUIDE называет вводную функцию путем добавления _OpeningFcn
к имени пользовательского интерфейса. Это - пример вводного шаблона функции, как это может появиться в myui
файл кода.
% --- Executes just before myui is made visible. function myui_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to myui (see VARARGIN) % Choose default command line output for myui handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes myui wait for user response (see UIRESUME) % uiwait(handles.myui);
Вводная функция имеет четыре входных параметра hObject
Данные о событиях
, handles
, и varargin
. Первые три эквивалентны описанный в Синтаксисе Коллбэка GUIDE. последний аргумент, varargin
, позволяет вам передать аргументы от командной строки до вводной функции. Вводная функция может принять меры с ними (например, установив значения свойств) и также сделать аргументы доступными для коллбэков путем добавления их в handles
структура.
Для получения дополнительной информации об использовании varargin
, смотрите varargin
страница с описанием и Количество Переменной Поддержки Входных параметров.
Передача Свойств объектов к Вводной Функции. Можно передать пары "имя-значение" свойства как два последовательных параметра командной строки, когда вы запускаете свою программу. Если вы передаете пару "имя-значение", которая соответствует свойству фигуры, MATLAB устанавливает свойство автоматически. Например, my_gui('Color', 'Blue')
выбирает цвет фона окна UI к синему.
Если вы хотите, чтобы ваша программа приняла входной параметр, который не является допустимым свойством фигуры, то ваш код должен распознать и обработать тот аргумент. В противном случае аргумент проигнорирован. Следующий пример от вводной функции для шаблона Modal Question Dialog, доступного от диалогового окна GUIDE Quick Start. Добавленный код открывает модальное диалоговое окно с сообщением, заданным из командной строки или другой программой, которая вызывает этого. Например, эта команда отображает текст, 'Do you want to exit?'
на окне.
myui('String','Do you want to exit?')
Чтобы принять эту пару "имя-значение", необходимо настроить вводную функцию потому что 'String'
не допустимое свойство фигуры. Файл шаблона Modal Question Dialog содержит код к, выполняет эти задачи:
Использует nargin
функция, чтобы определить количество заданных пользователями аргументов (которые не включают hObject
Данные о событиях
, и handles
)
Синтаксические анализы varargin
получить имя свойства / пары значения, преобразовывая каждое имя к нижнему регистру
Обрабатывает случай где аргумент 'title'
используется в качестве псевдонима для фигуры Name
свойство
Обрабатывает случай 'string'
, присвоение следующего значения как String
свойство к соответствующему статическому текстовому объекту
function modalgui_OpeningFcn(hObject, eventdata, handles, varargin) . . . % Insert custom Title and Text if specified by the user % Hint: when choosing keywords, be sure they are not easily confused % with existing figure properties. See the output of set(figure) for % a list of figure properties. if(nargin > 3) for index = 1:2:(nargin-3), if nargin-3==index, break, end switch lower(varargin{index}) case 'title' set(hObject, 'Name', varargin{index+1}); case 'string' set(handles.text1, 'String', varargin{index+1}); end end end . . .
if
блокируйте циклы через нечетные элементы varargin
проверка имена свойства или псевдонимы и case
блоки присваивают следующее (даже) varargin
элемент как значение к соответствующему свойству фигуры или одному из его компонентов. Можно добавить больше случаев, чтобы обработать присвоения дополнительного свойства, которые вы хотите, чтобы вводная функция выполнила.Первоначально, шаблон функции ввода содержит эти строки кода:
handles.output = hObject
добавляет новый элемент, output
, к handles
структура и присвоения это значение входного параметра hObject
, который является объектом фигуры.
guidata(hObject,handles)
сохраняет handles
структура. Необходимо использовать guidata
функционируйте, чтобы сохранить любые изменения, которые вы вносите в handles
структура. Не достаточно только установить значение handles
поле .
uiwait(handles.myui)
, первоначально прокомментированный, выполнение программы блоков до uiresume
называется или окно закрывается. Обратите внимание на то, что uiwait
предоставляет пользовательский доступ к другим окнам MATLAB. Удалите символ комментария для этого оператора, если вы хотите, чтобы пользовательский интерфейс блокировался, когда это открывается.
Выходная функция возвращается к командной строке, выходные параметры, которые сгенерированы во время ее выполнения. Это выполняется, когда вводная функция возвращает управление и прежде чем управление возвратится к командной строке. Это означает, что необходимо сгенерировать выходные параметры во вводной функции или вызвать uiwait
во вводной функции, чтобы приостановить ее выполнение, в то время как другие коллбэки генерируют выходные параметры.
GUIDE называет выходную функцию путем добавления _OutputFcn
к имени пользовательского интерфейса. Это - пример шаблона выходной функции, как это может появиться в myui
файл кода.
% --- Outputs from this function are returned to the command line. function varargout = myui_OutputFcn(hObject, eventdata,... handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output;
Выходная функция имеет три входных параметра: hObject
Данные о событиях
, и handles
. Они эквивалентны описанный в Синтаксисе Коллбэка GUIDE.
Выходная функция имеет один выходной аргумент, varargout
, который это возвращает в командную строку. По умолчанию выходная функция присваивает handles.output
к varargout
.
Можно изменить выход путем принятия одних из этих мер:
Измените значение handles.output
. Это может быть любое допустимое значение MATLAB включая массив структур или массив ячеек.
Добавьте выходные аргументы varargout
. varargout
аргумент является массивом ячеек. Это может содержать любое количество выходных аргументов. По умолчанию GUIDE задает всего один выходной аргумент, handles.output
. Чтобы задать дополнительный выходной аргумент, создайте новое поле в handles
структура и добавляет его в varargout
использование команды, похожей на
varargout{2} = handles.second_output;