В R2019b MathWorks® объявил, что GUIDE, оригинальное окружение перетаскивания для создания приложений в MATLAB®, будет удалено в следующем релизе. После удаления GUIDE существующие приложения GUIDE (GUI) будут продолжать запускаться в MATLAB, а файлы приложений все еще будут редактироваться, если вам нужно будет изменить поведение приложения.
Чтобы продолжить редактирование размещения существующего приложения GUIDE и помочь поддерживать его совместимость с будущими релизами MATLAB, необходимо использовать одну из предлагаемых стратегий миграции, перечисленных в этой таблице.
Потребности в разработке приложений | Стратегия миграции | Как выполнить миграцию |
---|---|---|
Периодическое редактирование | Экспортируйте ваше приложение в один файл MATLAB, чтобы управлять размещением и кодом приложения с помощью функций MATLAB. | Откройте приложение в GUIDE и выберите File > Export to MATLAB-file. В диалоговом окне «Опции удаления GUIDE» нажмите кнопку Export. |
Текущая разработка | Миграция приложения на App Designer. | Откройте приложение в GUIDE и выберите File > Migrate to App Designer. В диалоговом окне «Опции удаления GUIDE» нажмите кнопку Migrate. |
Экспорт приложения GUIDE преобразует его в программное приложение путем воссоздания GUIDE FIG и программных файлов вместе в одном программном файле MATLAB.
Используйте эту опцию, если вы планируете:
Внесите незначительные изменения в размещение или поведение вашего приложения.
Разрабатывайте свое приложение программно, а не интерактивно.
Чтобы экспортировать приложение, откройте его в GUIDE и выберите File > Export to MATLAB-file, или щелкните правой кнопкой мыши файл FIG в браузере Current Folder MATLAB и выберите Export to MATLAB-file. Это открывает диалоговое окно «Параметры удаления GUIDE» (GUIDE Опции). Проверьте, что выбран правильный файл FIG, и нажмите Export. MATLAB создает программный файл с _export
добавлено к имени файла. Новый файл содержит ваш исходный код коллбэка плюс автоматически сгенерированные функции, которые обрабатывают создание и размещение приложения. Пример этих добавленных функций показан здесь.
Миграция приложения GUIDE на App Designer позволяет вам продолжать разработку размещения приложения в интерактивном режиме. Это также позволяет вам использовать такие функции, как расширенный набор компонентов пользовательского интерфейса и опции автоматического переплавки, чтобы приложение реагировало на изменения в размере экрана. И это дает вам возможность создавать и делиться приложением как веб-приложением (требует MATLAB Compiler™).
GUIDE to App Designer Migration Tool для MATLAB был впервые выпущен в R2018a, чтобы облегчить процесс преобразования. Он доступен в Add-On Explorer на рабочем столе MATLAB или с помощью обмена файлами на Central™ MATLAB.
Начиная с R2020a, инструмент миграции имеет значительные улучшения, которые резко сокращают время и количество ручных обновлений кода, необходимых для запуска вашего приложения в App Designer. Для получения дополнительной информации об этих усовершенствованиях см. код коллбэка».
Используйте эту опцию для приложений GUIDE, которые требуют значительных или текущих разработок функций.
Существует несколько способов переноса вашего приложения, в зависимости от того, в каком окружении вы начинаете работать.
Откройте диалоговое окно GUIDE Removal Options путем открытия приложения в GUIDE и выбора File > Migrate to App Designer или щелчка правой кнопкой мыши по файлу FIG в браузере Current Folder MATLAB и выбора Migrate to App Designer.
Если у вас еще не установлен Инструмент GUIDE to App Designer Migration, нажмите Install Support Package. Откроется браузер Add-On Explorer, в котором можно установить инструмент миграции. После установки инструмента снова откройте диалоговое окно «Опции удаления GUIDE».
После установки GUIDE to App Designer Migration Tool выберите правильный файл FIG и нажмите Migrate. Приложение мигрирует и автоматически открывается в App Designer.
Из App Designer откройте любое приложение и перейдите на вкладку Designer. В File разделе щелкните Open > Open GUIDE to App Designer Migration Tool.
Инструмент миграции помогает вам преобразовать приложения путем чтения в файле GUIDE FIG и автоматической генерации эквивалентных компонентов и размещения App Designer в файле MLAPP. Код коллбэка GUIDE и другие пользовательские функции копируются в файл MLAPP. Это полуавтоматическое преобразование кода также создает отчет о миграции, который предлагает действия для любых ручных обновлений кода, которые необходимы. Некоторые функции инструмента описаны в этой таблице.
Функции инструмента миграции | Описание | |
---|---|---|
Преобразование файлов | Считайте в файле GUIDE FIG и связанном коде, а затем сгенерируйте файл MLAPP App Designer. Имя файла App Designer принимает форму guideFileName _App.mlapp . | |
Компоненты и размещение приложения | Преобразуйте компоненты и строения свойств в эквиваленты App Designer и сохраните размещение приложения. | |
Код коллбэка | Сохраните копию кода коллбэка GUIDE и пользовательские функции в файле MLAPP. | |
Руководство | Пройдите по изменениям, внесенным в перенесенное приложение. | |
Отчет о миграции | Результирующие действия, успешно завершенные инструментом миграции. Список любых ограничений или неподдерживаемых функций, характерных для вашего приложения, с предлагаемыми действиями, если они доступны. |
В порядок, чтобы сделать ваш коллбэк код в стиле GUIDE совместимым с компонентами пользовательского интерфейса App Designer в вашем приложении, инструмент миграции использует функцию, называемую convertToGUIDECallbackArguments
. Эта функция преобразует аргументы коллбэка App Designer в аргументы коллбэка в стиле GUIDE, которые требуются вашему коду. The convertToGUIDECallbackArguments
функция добавляется к началу каждой перенесенной функции обратного вызова. Для этого требуются аргументы коллбэка App Designer app
и event
и возвращает аргументы коллбэка в стиле GUIDE hObject
, eventdata
, и handles
. Для примера:
hObject
- указатель на объект, коллбэк выполняет. Для компонентов из вашего приложения GUIDE, которые были UIControl
или ButtonGroup
объекты, hObject
является указателем на UIControlPropertiesConverter
или ButtonGroupPropertiesConverter
объект. Эти объекты создаются, чтобы код в стиле GUIDE работал в функциях обратного вызова App Designer.
eventdata
обычно пуст, но может быть структурой, содержащей определенную информацию о событии коллбэка.
handles
- структура, содержащая перенесенные дочерние компоненты фигуры пользовательского интерфейса, которые имеют 'Tag'
набор значений свойств. Дочерние компоненты, которые были UIControl
объекты в вашем приложении GUIDE UIControlPropertiesConverter
объекты в перенесенном приложении. Аналогично, дочерние ButtonGroup
объекты ButtonGroupPropertiesConverter
объекты в перенесенном приложении.
The UIControlPropertiesConverter
и ButtonGroupPropertiesConverter
объекты действуют как адаптеры между кодом в стиле GUIDE и компонентами App Designer и коллбэками. A UIControlPropertiesConverter
создается для каждого компонента приложения GUIDE, который был UIControl
объект. Эти объекты конвертера связаны с компонентом пользовательского интерфейса App Designer в перенесенном приложении. Объект конвертера имеет те же свойства и значения, что и исходный UIControl
из вашего приложения GUIDE, но оно применяет их к связанному с ним компоненту Designer.
Точно так же для ButtonGroup
объекты из GUIDE, a ButtonGroupPropertiesConverter
создается в App Designer. Этот объект позволяет задать SelectedObject
свойство для UIControlPropertiesConverter
объект, так что группа кнопок SelectionChangedFcn
будет функционировать логика коллбэка.
Существуют некоторые обстоятельства, которые требуют, чтобы вы сделали дополнительные шаги до или после миграции вашего приложения. в этой таблице перечислены общие сценарии и шаблоны кодирования, которые требуют дополнительных шагов или ручных обновлений кода. Этот список не должен быть исчерпывающим.
Функция приложения GUIDE | Описание | Предлагаемые действия |
---|---|---|
Multiwindow-приложения (то есть два или более приложений, которые совместно используют данные) | Приложения Multiwindow требуют, чтобы каждое приложение мигрировало отдельно. Перенесенные имена файлов приложений добавляются с _App . Вызовы этих приложений из других приложений должны быть обновлены. | Миграция каждого приложения по отдельности. В вызывающем приложении обновите имя приложения, которое вызывается, до нового имени файла. |
Переключатели и обратные коллбэки переключателей | Инструмент миграции не переносит переключатели, которые не помечены, в группу переключателей или функции обратного вызова для отдельных переключателей. | Создайте группу кнопок в App Designer и добавьте к ней переключатели. Чтобы выполнить поведение при изменении выбора переключателя, создайте SelectionChangedFcn функция обратного вызова для группы кнопок. Для получения дополнительной информации см. uiradiobutton и свойства ButtonGroup. |
gco , movie , uistack , и clf с 'reset' аргумент | Вызов этих функций в App Designer не поддерживается. | Определите, является ли эта функциональность критической для вашего приложения перед миграцией. Обходного пути в App Designer нет. |
findobj , findall , и gcbo | Использование | Ссылка на компоненты с помощью handles вместо этого структура или обновление кода для использования связанного компонента, свойств и значений App Designer. |
nargin и nargchk | Функции Helper переносятся на методы приложений и имеют app как дополнительный входной параметр. Это может привести к неправильным nargin или nargchk логика. | Увеличьте значения проверки по 1 . |
OutputFcn(varargout) и Figure выход | В App Designer нет эквивалентной функциональности. Когда вы создаете экземпляр перенесенного приложения App Designer, выход всегда является объектом приложения, а не | Если ваш Если ваш function out = MyGUIDEApp(varargin) app = MyMigratedApp(varargin{:}); out = app.UIFigure; end |
Если ваше приложение GUIDE интегрирует сторонние компоненты с помощью таких функций, как actxcontrol
, см. Рекомендации для приложений MATLAB, использующих Java и ActiveX.
App Designer и GUIDE имеют различные структуры кода, синтаксис коллбэка и методы для доступа к компонентам пользовательского интерфейса и обмена данными. Понимание этих различий полезно, если вы планируете добавить новые функции App Designer в перенесенное приложение или хотите обновить его, чтобы использовать стиль кода и соглашения App Designer. В этой таблице обобщены некоторые из этих различий.
Различие | Руководство | App Designer | Дополнительная информация |
---|---|---|---|
Использование фигур и графики | GUIDE вызывает GUIDE вызывает Поддерживаются все графические функции MATLAB. Нет необходимости задавать целевые оси. | App Designer вызывает App Designer вызывает Большинство графических функций MATLAB поддерживаются. | Отобразите графику в App Designer |
Использование компонентов | GUIDE создает большинство компонентов с | App Designer создает каждый компонент UI со своей специальной функцией. Доступно больше компонентов, включая | App Building |
Доступ к свойствам компонентов | GUIDE использует Для примера, | App Designer поддерживает Для примера, | Запись коллбэков в App Designer |
Управление кодом приложения | Код определяется как основная функция, которая может вызывать локальные функции. Весь код можно редактировать. | Код определяется как класс MATLAB. Редактируются только коллбэки, вспомогательные функции и пользовательские свойства. | Управление кодом в представлении кода App Designer |
Запись коллбэков | Требуемые входные параметры коллбэка Для примера, | Требуемые входные параметры коллбэка Для примера, | Запись коллбэков в App Designer |
Обмен данными | Для хранения и совместного использования данных между коллбэками и функциями используйте Для примера, | Чтобы хранить и обмениваться данными между коллбэками и функциями, используйте пользовательские свойства для создания переменных. | Обмен данными в приложениях App Designer |